*Completely rewritten rebuttal of the halting theorem*
A simulating halt decider (SHD) correctly predicts what the behavior of
its input would be if it never aborted the simulation of this input. It
does this by correctly recognizing several non-halting behavior patterns
in a finite number of steps of correct simulation. It must abort the simulation of all non-terminating inputs so that it can report that they
are non-halting. Inputs that do terminate are simply simulated until
they complete.
When simulating halt decider H correctly predicts that directly executed
D(D) would remain stuck in recursive simulation (run forever) unless H
aborts its simulation of D this directly applies to the halting theorem because H correctly determines:
from a description of an arbitrary computer program and an input,
whether the program will finish running, or continue to run forever.
https://en.wikipedia.org/wiki/Halting_problem
https://www.amazon.com/Introduction-Theory-Computation-Michael-Sipser/dp/113318779X
MIT Professor Michael Sipser has agreed that the following verbatim
paragraph is correct (he has not agreed to anything else in this paper):
(a) If simulating halt decider H correctly simulates its input D
until H correctly determines that its simulated D would never stop
running unless aborted then
(b) H can abort its simulation of D and correctly report that D
specifies a non-halting sequence of configurations.
(b) is a necessary consequence of (a)
01 int D(int (*x)())
02 {
03 int Halt_Status = H(x, x);
04 if (Halt_Status)
05 HERE: goto HERE;
06 return Halt_Status;
07 }
08
09 void main()
10 {
11 D(D);
12 }
*Here is the sequence when H never aborts it simulation*
main() calls D(D) at line 11
D(D) calls H(D,D) that simulates D(D) at line 03
simulated D(D) calls simulated H(D,D) that simulates D(D) at line 03
simulated D(D) calls simulated H(D,D) that simulates D(D) ...
repeating ...
Because it is an easily verified fact that D(D) would never stop running unless H aborts its simulation of D, H is necessarily correct to return
0 indicating this verified fact.
*This is every aspect of my whole proof*
(a), (a) → (b) ∴ H(D,D)==0 is correct
H(D,D) is fully operational in the x86utm operating system: https://github.com/plolcott/x86utm
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 428 |
Nodes: | 16 (2 / 14) |
Uptime: | 111:16:27 |
Calls: | 9,053 |
Files: | 13,395 |
Messages: | 6,016,121 |