>>>> On 7/16/2021 3:19 PM, Alan Mackenzie wrote:
>>>>> olcott <
No...@nowhere.com> wrote:
>>>>>> On 7/16/2021 1:25 PM, Alan Mackenzie wrote:
>
> [ .... ]
>
>>>> You say that all input that stops running proves that it halts my
>>>> halt decider causes Infinite_Loop() to stop running.
>
>>> That "sentence" doesn't parse.
>
>> Simulating halt decider is merely fulfilling the requirements of this
>> axiom:
>
>> Halt Deciding Axiom: When the pure simulation of the machine description
>> ⟨P⟩ of a machine P on its input I never halts we know that P(I) never
>> halts.
>
> That's a strange notion to call an axiom. All it seems to be saying is
> that simulation is possible.
>
It is the equivalence of UTM(⟨P⟩,I) and TM(P,I)
Learned by rote people fail to notice this.
>> Simulating halt decider H is only answering the question:
>> Would the input halt on its input if H never stopped simulating it?
>> (a) An answer of "no" universally means that the input never halts.
>> (b) An answer of "yes" universally means that the input halts.
>
> Seems over-complicated. The question should be "does the input program
> halt?".
>
The new axioms are not subject to the pathological self-reference error.
The halt decider acts as a pure simulator until after its halt status
decision has been made. This eliminates the possibility of any feedback
loop where the halt decider has any effect on the behavior of its input.
For all computations that halt without intervention, the simulating halt
decider remains in pure simulator mode.
For all computations that do not halt without intervention, the
simulating halt decide immediately aborts the simulation of its input as
soon as a non-halting behavior pattern is recognized.
The above system makes it impossible for the input to prevent a correct
halt status decision.
Here is a complete example:
void P(u32 x)
{
if (H(x, x))
HERE: goto HERE;
}
int main()
{
Output("Input_Halts = ", H((u32)P, (u32)P));
}
_P()
[00000c36](01) 55 push ebp
[00000c37](02) 8bec mov ebp,esp
[00000c39](03) 8b4508 mov eax,[ebp+08]
[00000c3c](01) 50 push eax
[00000c3d](03) 8b4d08 mov ecx,[ebp+08]
[00000c40](01) 51 push ecx
[00000c41](05) e820fdffff call 00000966
[00000c46](03) 83c408 add esp,+08
[00000c49](02) 85c0 test eax,eax
[00000c4b](02) 7402 jz 00000c4f
[00000c4d](02) ebfe jmp 00000c4d
[00000c4f](01) 5d pop ebp
[00000c50](01) c3 ret
Size in bytes:(0027) [00000c50]
_main()
[00000c56](01) 55 push ebp
[00000c57](02) 8bec mov ebp,esp
[00000c59](05) 68360c0000 push 00000c36
[00000c5e](05) 68360c0000 push 00000c36
[00000c63](05) e8fefcffff call 00000966
[00000c68](03) 83c408 add esp,+08
[00000c6b](01) 50 push eax
[00000c6c](05) 6857030000 push 00000357
[00000c71](05) e810f7ffff call 00000386
[00000c76](03) 83c408 add esp,+08
[00000c79](02) 33c0 xor eax,eax
[00000c7b](01) 5d pop ebp
[00000c7c](01) c3 ret
Size in bytes:(0039) [00000c7c]
===============================
...[00000c56][0010172a][00000000] 55 push ebp
...[00000c57][0010172a][00000000] 8bec mov ebp,esp
...[00000c59][00101726][00000c36] 68360c0000 push 00000c36 // push P
...[00000c5e][00101722][00000c36] 68360c0000 push 00000c36 // push P
...[00000c63][0010171e][00000c68] e8fefcffff call 00000966 // call H
Begin Local Halt Decider Simulation at Machine Address:c36
...[00000c36][002117ca][002117ce] 55 push ebp
...[00000c37][002117ca][002117ce] 8bec mov ebp,esp
...[00000c39][002117ca][002117ce] 8b4508 mov eax,[ebp+08]
...[00000c3c][002117c6][00000c36] 50 push eax // push P
...[00000c3d][002117c6][00000c36] 8b4d08 mov ecx,[ebp+08]
...[00000c40][002117c2][00000c36] 51 push ecx // push P
...[00000c41][002117be][00000c46] e820fdffff call 00000966 // call H
...[00000c36][0025c1f2][0025c1f6] 55 push ebp
...[00000c37][0025c1f2][0025c1f6] 8bec mov ebp,esp
...[00000c39][0025c1f2][0025c1f6] 8b4508 mov eax,[ebp+08]
...[00000c3c][0025c1ee][00000c36] 50 push eax // push P
...[00000c3d][0025c1ee][00000c36] 8b4d08 mov ecx,[ebp+08]
...[00000c40][0025c1ea][00000c36] 51 push ecx // push P
...[00000c41][0025c1e6][00000c46] e820fdffff call 00000966 // call H
Local Halt Decider: Infinite Recursion Detected Simulation Stopped
Because the halt decider acts as a pure simulator until after its halt
status decision is made it can ignore its own address range in any
execution trace basis of its halt status decision.
This means that the above repeating sequence of the first 7 instructions
pf P() prove that P() will never halt. None of these 7 instructions can
possibly break out of this infinite repetition.
...[00000c68][0010172a][00000000] 83c408 add esp,+08
...[00000c6b][00101726][00000000] 50 push eax
...[00000c6c][00101722][00000357] 6857030000 push 00000357
---[00000c71][00101722][00000357] e810f7ffff call 00000386
Input_Halts = 0
...[00000c76][0010172a][00000000] 83c408 add esp,+08
...[00000c79][0010172a][00000000] 33c0 xor eax,eax
...[00000c7b][0010172e][00100000] 5d pop ebp
...[00000c7c][00101732][00000068] c3 ret
Number_of_User_Instructions(27)
Number of Instructions Executed(23721)
> [ .... ]
>
>>>>> That concept "proof", in the mathematical sense, is one you don't
>>>>> understand. It's the fact that things can be shown to be absolutely
>>>>> correct or absolutely incorrect, without a shadow of doubt, for all time.
>>>>> If you could understand that, you'd be less pig-headed and possibly
>>>>> amenable to the truth.
>
>>>> An actual working program that shows all of the steps of correctly
>>>> deciding the impossible inputs supersedes and over-rules and proof to
>>>> the contrary that relies on false assumptions about the details of
>>>> unspecified steps.
>
>>> No it doesn't. It's merely erroneous. Like I said, you do not
>>> understand the concept of proof - you literally don't get it.
>
>> When you start with premises that can be verified as definitely true and
>> only apply truth preserving operations to these true premises then the
>> consequence/conclusion is necessarily true.
>
> That's one form of proof, yes. But you don't get it - you don't
> understand in the soul of your being that something mathematically proven
> is absolute truth. You seem to think something proven is merely some
> sort of provisional result. You are wrong.
>
The HP proof only show that no correct halt status can be returned to an
input that is designed to do the opposite of whatever the halt decider
decides.
Categorically exhaustive reasoning (my system of reasoning) finds a key
gap in this proof. I provided all the details above.
When H aborts its simulation of P before ever returning any value to P
it escapes the pathological self-reference(Olcott 2004) error.
Because this second level H is merely a part of the slave process that
is under the total control of the master H, the master H can cut off
simulation of the slave process at any point.
A slave decider need not return any value because it can have its
execution cut off at any point by its master.
As shown above the second time that a slave P calls H(P,P) its whole
slave process is terminated. Because the H in this slave process is a
part of a slave process its master can cut it off at any time.
>> Other forms of "proof" that diverge for this model are bogus.
>
> You could hardly be more wrong, here. For example, there is proof by
> contradiction. Here we assume, provisionally, something we wish to show
> is false, and by "truth preserving arguments" show that this leads to a
> contradiction. Thus this assumption is proven wrong, and we have shown
> the something to be false.
>
That is not a divergence.
>>> You don't understand the proofs of the halting problem that you have
>>> quoted here over the months and years. You do not understand that
>>> some things are unassailably and eternally true. Pythagoras's Theorem
>>> is one example - a plane triangle with sides 3, 4, and 5 will have an
>>> exact right angle. The impossibility of a universal halting decider
>>> is another example.
>
>>>> Every HP proof is never more than a sketch of a proof because it
>>>> always leaves out almost all of the details of the definition of the
>>>> computations.
>
>>> You don't get it: it leaves out unimportant details which are
>>> irrelevant to the proof. The internal structure of the computations
>>> is wholly unimportant. It doesn't matter. Whether by analysis, or
>>> simulation, or magic is wholly unimportant - just that a yes/no
>>> answer is always returned, and the same answer is always return for
>>> the same input.
>
> [ .... ]