PlanetMath (more info)
 Math for the people, by the people. Sponsor PlanetMath
Encyclopedia | Requests | Forums | Docs | Wiki | Random | RSS  
Login
create new user
name:
pass:
forget your password?
Main Menu
[parent] Viewing Message
``Re: Self reference'' by John Allsup on 2005-02-17 09:55:19
To elaborate:

The current Break algorithm reads:

Break(x) {
 if Halt(Break,x) then
 while true do nothing
 else
 return true
 fi
}

modify it to:
Break(x) {
 if IsValidCode(x) and Halt(x,x) then
 while true do nothing
 else
 return true
 fi
}

This no longer references itself. Let Break be some encoding of the
 program Break(x). Consider Break(Break). IsValidCode(Break) is certainly true. Now if Halt(Break,Break) is true then Break(Break) gets stuck in the while loop, so doesn't halt. If Halt(Break,Break) is false, then the if branches to the return true statement and the Break(Break) halts after all. Thus the given program Halt(x,y) is not a solution to the halting problem (since it gives the wrong result for the particular case of Break given above.)

[ reply | up | top ]
Interact
reply