Followup to: No Universally Compelling Arguments, Passing the Recursive Buck
Lewis Carroll, who was also a mathematician, once wrote a short dialogue called What the Tortoise said to Achilles. If you have not yet read this ancient classic, consider doing so now.
The Tortoise offers Achilles a step of reasoning drawn from Euclid's First Proposition:
(A) Things that are equal to the same are equal to each other.
(B) The two sides of this Triangle are things that are equal to the same.
(Z) The two sides of this Triangle are equal to each other.
Tortoise: "And if some reader had not yet accepted A and B as true, he might still accept the sequence as a valid one, I suppose?"
Achilles: "No doubt such a reader might exist. He might say, 'I accept as true the Hypothetical Proposition that, if A and B be true, Z must be true; but, I don't accept A and B as true.' Such a reader would do wisely in abandoning Euclid, and taking to football."
Tortoise: "And might there not also be some reader who would say, 'I accept A and B as true, but I don't accept the Hypothetical'?"
Achilles, unwisely, concedes this; and so asks the Tortoise to accept another proposition:
(C) If A and B are true, Z must be true.
But, asks, the Tortoise, suppose that he accepts A and B and C, but not Z?
Then, says, Achilles, he must ask the Tortoise to accept one more hypothetical:
(D) If A and B and C are true, Z must be true.
Douglas Hofstadter paraphrased the argument some time later:
Achilles: If you have [(A⋀B)→Z], and you also have (A⋀B), then surely you have Z.
Tortoise: Oh! You mean <{(A⋀B)⋀[(A⋀B)→Z]}→Z>, don't you?
As Hofstadter says, "Whatever Achilles considers a rule of inference, the Tortoise immediately flattens into a mere string of the system. If you use only the letters A, B, and Z, you will get a recursive pattern of longer and longer strings."
By now you should recognize the anti-pattern Passing the Recursive Buck; and though the counterspell is sometimes hard to find, when found, it generally takes the form The Buck Stops Immediately.
The Tortoise's mind needs the dynamic of adding Y to the belief pool when X and (X→Y) are previously in the belief pool. If this dynamic is not present—a rock, for example, lacks it—then you can go on adding in X and (X→Y) and (X⋀(X→Y))→Y until the end of eternity, without ever getting to Y.
The phrase that once came into my mind to describe this requirement, is that a mind must be created already in motion. There is no argument so compelling that it will give dynamics to a static thing. There is no computer program so persuasive that you can run it on a rock.
And even if you have a mind that does carry out modus ponens, it is futile for it to have such beliefs as...
(A) If a toddler is on the train tracks, then pulling them off is fuzzle.
(B) There is a toddler on the train tracks.
...unless the mind also implements:
Dynamic: When the belief pool contains "X is fuzzle", send X to the action system.
(Added: Apparently this wasn't clear... By "dynamic" I mean a property of a physically implemented cognitive system's development over time. A "dynamic" is something that happens inside a cognitive system, not data that it stores in memory and manipulates. Dynamics are the manipulations. There is no way to write a dynamic on a piece of paper, because the paper will just lie there. So the text immediately above, which says "dynamic", is not dynamic. If I wanted the text to be dynamic and not just say "dynamic", I would have to write a Java applet.)
Needless to say, having the belief...
(C) If the belief pool contains "X is fuzzle", then "send 'X' to the action system" is fuzzle.
...won't help unless the mind already implements the behavior of translating hypothetical actions labeled 'fuzzle' into actual motor actions.
By dint of careful arguments about the nature of cognitive systems, you might be able to prove...
(D) A mind with a dynamic that sends plans labeled "fuzzle" to the action system, is more fuzzle than minds that don't.
...but that still won't help, unless the listening mind previously possessed the dynamic of swapping out its current source code for alternative source code that is believed to be more fuzzle.
This is why you can't argue fuzzleness into a rock.
Part of The Metaethics Sequence
Next post: "The Bedrock of Fairness"
Previous post: "The Moral Void"
I think this just begs the question:
Ah, but the tortoise would argue that this isn't enough. Sure, the belief pool may contain "X is fuzzle," and this dynamic, but that doesn't mean that X necessarily gets sent to the action system. In addition, you need another dynamic:Dynamic 2: When the belief pool contains "X is fuzzle", and there is a dynamic saying "When the belief pool contains 'X is fuzzle', send X to the action system", then send X to the action system.
Or, to put it another way:
Dynamic 2: When the belief pool contains "X is fuzzle", run Dynamic 1.
Of course, then one needs Dynamic 3 to tell you to run Dynamic 2, ad infinitum -- and we're back to the original problem.
I think the real point of the dialogue is that you can't use rules of inference to derive rules of inference -- even if you add them as axioms! In some sense, then, rules of inference are even more fundamental than axioms: they're the machines that you feed the axioms into. Then one naturally starts to ask questions about how you can "program" the machines by feeding in certain kinds of axioms, and what happens if you try to feed a program's description to itself, various paradoxes of self-reference, etc. This is where the connection to Gödel and Turing comes in -- and probably why Hofstadter included this fable.
Cheers, Ari