Sujet : Re: This function proves that only the outermost HHH examines the execution trace
De : F.Zwarts (at) *nospam* HetNet.nl (Fred. Zwarts)
Groupes : comp.theoryDate : 29. Jul 2024, 21:33:37
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v88qqj$ju20$4@dont-email.me>
References : 1 2 3 4 5 6 7 8 9 10 11
User-Agent : Mozilla Thunderbird
Op 29.jul.2024 om 14:59 schreef olcott:
On 7/29/2024 2:27 AM, Mikko wrote:
On 2024-07-28 23:54:54 +0000, olcott said:
>
On 7/28/2024 4:23 AM, Mikko wrote:
On 2024-07-27 18:20:19 +0000, olcott said:
>
On 7/27/2024 1:14 PM, Alan Mackenzie wrote:
olcott <polcott333@gmail.com> wrote:
>
Stopping running is not the same as halting.
DDD emulated by HHH stops running when its emulation has been aborted.
This is not the same as reaching its ret instruction and terminating
normally (AKA halting).
>
I think you're wrong, here. All your C programs are a stand in for
turing machines. A turing machine is either running or halted. There is
no third state "aborted".
>
Until you take the conventional ideas of
(a) UTM
(b) TM Description
(c) Decider
and combine them together to become a simulating partial halt decider.
>
You also need the conventional ideas of halting and halt decider.
The latter is largely a combination of the conventional ideas of
decider and halting but also involves the conventional of
prediction, so you need that, too.
>
Although the conventional idea of testing is not relevant to the construction of a simulating partial halt decider it is helpful to presentation of the
result, especially if your target audience contains software engineers. If your target audience is mainly mathematicians the convnetional idea of proofs is more useful because in that case most of your presentation must be proofs.
>
My ideas must be anchored in fully specified running software
otherwise the false assumptions made by computer science people
remain hidden.
>
There is no "must" there. You may present your ideas whichever way you
think is the best for your purposes.
>
Even when I make my ideas 100% concrete people still deny
the verified facts.When I make them less than 100% concrete
it is not as specific as verified facts.
One good way to avoid false assumptions is to clearly state what is
assumed instead. Sometimes it may be necessary to clearly state what
is not assumed.
>
Even when I slap them in the face with proven facts they deny
these proven facts on the basis of their indoctrination.
>
Facts are never proven. They are observed.
>
You didn't even bother to look at how HHH examines the
execution trace of Infinite_Recursion() to determine that Infinite_Recursion() specifies non-halting behavior.
Because of this you cannot see that the execution trace
of DDD correctly emulated by DDD is essentially this same
trace and thus also specifies non-halting behavior.
void Infinite_Recursion()
{
Infinite_Recursion();
}
_Infinite_Recursion()
[0000215a] 55 push ebp ; 1st line
[0000215b] 8bec mov ebp,esp ; 2nd line
[0000215d] e8f8ffffff call 0000215a ; 3rd line
[00002162] 5d pop ebp
[00002163] c3 ret
Size in bytes:(0010) [00002163]
Begin Local Halt Decider Simulation Execution Trace Stored at:113934
[0000215a][00113924][00113928] 55 push ebp ; 1st line
[0000215b][00113924][00113928] 8bec mov ebp,esp ; 2nd line
[0000215d][00113920][00002162] e8f8ffffff call 0000215a ; 3rd line
[0000215a][0011391c][00113924] 55 push ebp ; 1st line
[0000215b][0011391c][00113924] 8bec mov ebp,esp ; 2nd line
[0000215d][00113918][00002162] e8f8ffffff call 0000215a ; 3rd line
Local Halt Decider: Infinite Recursion Detected Simulation Stopped
=====
void DDD()
{
HHH(DDD);
}
_DDD()
[00002177] 55 push ebp ; 1st line
[00002178] 8bec mov ebp,esp ; 2nd line
[0000217a] 6877210000 push 00002177 ; push DDD
[0000217f] e853f4ffff call 000015d7 ; call HHH
[00002184] 83c404 add esp,+04
[00002187] 5d pop ebp
[00002188] c3 ret
Size in bytes:(0018) [00002188]
The input for the simulator is DDD and all functions called by it, including HHH, which has conditional branch instructions.
So, it compares better with:
void Finite_Recursion (int N) {
if (N > 0) Finite_Recursion (N - 1);
}
// executed HHH emulates 1st instance of DDD
New slave_stack at:10388d
Begin Local Halt Decider Simulation Execution Trace Stored at:113895
[00002177][00113885][00113889] 55 push ebp ; 1st line
[00002178][00113885][00113889] 8bec mov ebp,esp ; 2nd line
[0000217a][00113881][00002177] 6877210000 push 00002177 ; push DDD
[0000217f][0011387d][00002184] e853f4ffff call 000015d7 ; call HHH
Olcott is cheating. He hides that the call instruction should be followed by the instructions of HHH according to the semantics of the x86 language. HHH has conditional branch instructions.
// emulated HHH emulates 2nd instance of DDD
New slave_stack at:14e2b5
[00002177][0015e2ad][0015e2b1] 55 push ebp ; 1st line
[00002178][0015e2ad][0015e2b1] 8bec mov ebp,esp ; 2nd line
[0000217a][0015e2a9][00002177] 6877210000 push 00002177 ; push DDD
[0000217f][0015e2a5][00002184] e853f4ffff call 000015d7 ; call HHH
Olcott is cheating. He hides that the call instruction should be followed by the instructions of HHH according to the semantics of the x86 language. HHH has conditional branch instructions.
Local Halt Decider: Infinite Recursion Detected Simulation Stopped
Invalid decision. Only two recursions detected. Two is not infinite.