Monday, December 16, 2013

The Halting Problem of Evil

Because this is just what you always wanted to read as meditation for the First Week of Advent!

Of course you have heard of Gödel's theorems; they are:

  1. Any sequential programming language that can implement interpreters for arbitrary sequential programming languages also implements programs that, for some input, do not converge.
  2. In particular, for any sequential programming language $L$ (such as LISP) that can implement interpreters for arbitrary sequential programming languages, there is no convergent program in any sequential language that separates convergent $L$ programs from non-convergent $L$-programs.

What's that, you say? The LISP programming language is significantly younger than Gödel's theorems? Uncertain of the serializability of LISP itself? Not to worry! This is what happens when mutually-interpetable (or bisimulant) things get mixed up in a mathematician's brain. As it happens, what Gödel did, to prove his theorem, was to show that you could implement LISP (or some other sequential programming languge) in The Arithmetic of the Natural Numbers. I don't know precisely why he did that, though it might have something to do with everyone who cared at that point having a firm belief that they understood what the natural numbers were, and no-one anywhere had ever yet heard of a machine programming language (though they certainly DID have programmable machines, such as farmland and the Gutenberg press and the Jacquard Loom and the Player-Piano; what all these things lacked was recursion, but never mind).

Another way to read the theorem (as applied to programs) is that by far the best way to find out what a program does is to run the program, as naturally as possible. This is very much like (as Dr. Thursday reminds us) the way (as Uncle Gilbert remarked) the point of playing a game is to find out who wins! Now, with programs as with other games, there is definitely a risk involved, due to the halting problem and its corollaries, in running a program. You never know, for instance, that the thing will not chew up your whole machine (or try) before it stops unless you carefully run it within a tiny virtual machine; but on the other hand, unless you have an arbitrary quantity of free space to build a virtual machine in (or a working copy of your working machine), you may never know if some insidious program is going to behave in surprisingly different ways, given the space to do so in.

Of course, God Himself knows what every deterministic pattern of any size looks like at the edges, in exquisite detail; but this should be thought quite something else from creating a living thing that plays within the pattern for His delight. And how much more fraught than running a program, a deterministic thing in a deterministic piece of the universe (bar radioactive decay — and we know Who has ordered radioactive decay) is it to give life to a free and willful thing? But how else could anyone, ever, anywhere, in any way, be good? It is, of course, impossible, to be good without first being, and furthermore being free and willful; the dumb or speaking dead machines are useful or nuissance at times, but not (in themselves) good or evil. And never mind that he cannot be saved who will not be saved, still more can none be saved who is not at all.

Of course, this is all just an infinitessimal slice of the way the “problem of evil” isn't so much a theological problem as it is a natural hazard (and an intrinsic one) within any creation sufficient for containing moral life. [Although C. S. Lewis may have expressed it more eloquently, he certainly never invoked the mathematical certainty of Gödel's theorems, which nonetheless seem suprisingly a-propos; I think we may guess he also never had to program a computer, and it's neither a surprising nor deficient omission.] I also have to admit that this sort of analytical precision has a very cold feel to it, out of proportion with the fact of suffering; the recurrently strange H.H. F. Pp. I recently remarked on the especially poignant case of suffering children — Stilwell excerpts here.

It would seem that those things God has allowed are permitted for some end; and it further seems that suffering, especially suffering in children, does induce its witnesses to charity, and that is indeed a very good thing. Suffering makes the sufferer more lovable. In some cases this is through a change in the sufferer, but as often as not it is by a change in the rest of the world. And this effect, that suffering ordinarily leads to charity, is not a mathematical necessity (I'm sure), but rather a sign of God's goodness, the stamp of part of His character in the world.


Post a Comment