Notes for the Lifebox, the Seashell, and the Soul - Rudy Rucker
Notes for the Lifebox, the Seashell, and the Soul - Rudy Rucker
Notes for the Lifebox, the Seashell, and the Soul - Rudy Rucker
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Notes</strong> <strong>for</strong> The <strong>Lifebox</strong>, <strong>the</strong> <strong>Seashell</strong>, <strong>and</strong> <strong>the</strong> <strong>Soul</strong>, by <strong>Rudy</strong> <strong>Rucker</strong><br />
In <strong>the</strong> case where a general recursive function does happen to return an output <strong>for</strong><br />
each input, we call it a total recursive function. When I say a computation is recursive in <strong>the</strong><br />
sense of having a solvable halting problem, we really mean that it resembles a total recursive<br />
function ⎯ in <strong>the</strong> sense that, by combining P <strong>and</strong> its halt detector HP, we can create a<br />
computation P* which halts with an output <strong>for</strong> every input. P* acts <strong>the</strong> same as P on P’s<br />
halting inputs, <strong>and</strong> it returns False <strong>for</strong> P’s non-halting inputs. P* uses HP to decide which<br />
case to follow.<br />
The Unsolvable Production Problem<br />
Suppose I have a computation P <strong>and</strong> I’d like to find a way, given an In <strong>and</strong> an Out, to<br />
find out if P(In) ever produces Out. As with <strong>the</strong> halting question, we can’t distinguish <strong>the</strong><br />
two possibilities simply by running P(In) <strong>and</strong> waiting <strong>for</strong> Out to appear.<br />
P(In) produces Out. In this case, we’ll be successful, <strong>and</strong> we know after a finite time<br />
that, yes, Out appears among <strong>the</strong> states produced by P(In).<br />
P(In) doesn’t produce Out. In this case, running P(In) never leads to an answer,<br />
because we’ll never be sure if we’ve waited long enough <strong>for</strong> Out to appear.<br />
The cases where P(In) doesn’t produce Out lead to an unsuccessful search. We’d like<br />
to find a way to short circuit <strong>the</strong> endless wait <strong>for</strong> Out to turn up among <strong>the</strong> states produced by<br />
P(In). That is, we’d like to have an non-production detector computation PFailsToProduce.<br />
Definition. Given a computation P, we say <strong>the</strong> computation PFailsToProduce is a<br />
non-production detector if PFailsToProduce has a special state True, <strong>and</strong> <strong>the</strong> following two<br />
conditions are equivalent<br />
PFailsToProduce (In, Out) produces True<br />
P(In) doesn’t produce Out.<br />
Definition. A computation P has a solvable production problem iff it has a nonproduction<br />
detector. O<strong>the</strong>rwise we say P has an unsolvable production problem.<br />
Turing’s Theorem (Variation 2). If U is a universal computation, <strong>the</strong>n U has an<br />
unsolvable production problem.<br />
Degrees of Unsolvability<br />
It’s convenient to use <strong>the</strong> notion of emulation to compare <strong>the</strong> power of computations.<br />
Definition. Let P <strong>and</strong> Q be computations. If Q can emulate P, we say P has an<br />
emulation degree less than or equal to Q, <strong>and</strong> write P ≤ e Q.<br />
If Q can emulate P <strong>and</strong> P can emulate Q, we say P has <strong>the</strong> same emulation degree as<br />
Q, <strong>and</strong> we write P = e Q.<br />
If Q can emulate P <strong>and</strong> P can’t emulate Q, we say P has a smaller emulation degree<br />
than Q, <strong>and</strong> we write P < e Q.<br />
It’s not hard to prove that having <strong>the</strong> same degree is a transitive relationship; that is,<br />
If P = e Q <strong>and</strong> Q = e R, <strong>the</strong>n P = e R.<br />
This means we can use = e to divide <strong>the</strong> set of all possible computations into<br />
equivalence classes of computations such that all <strong>the</strong> computations in a given class can<br />
emulate each o<strong>the</strong>r.<br />
One can also prove that = e preserves <strong>the</strong> property of having a solvable halting<br />
p. 101