Liste des Groupes | Revenir à theory |
On 6/29/2024 11:45 AM, Richard Damon wrote:It is not a good idea to speculate about other peoples opinions.On 6/29/24 12:09 PM, olcott wrote:*According to the professor Sipser approved criteria YES IT IS*People are still trying to get away with disagreeing withNope, we are not disagreeing with the semantics of the x86 language, we are disagreeing with your misunderstanding of how it works.
the semantics of the x86 language. That is isomorphic to
trying to get away with disagreeing with arithmetic.
typedef void (*ptr)();No the x86 language "knows" NOTHING about H0 being a x86 emulator. It is just a function that maybe happens to be a partial x86 emulator, but that is NOT a fundamental result of it being H0.
int H0(ptr P);
void Infinite_Loop()
{
HERE: goto HERE;
}
void Infinite_Recursion()
{
Infinite_Recursion();
}
void DDD()
{
H0(DDD);
}
int main()
{
H0(Infinite_Loop);
H0(Infinite_Recursion);
H0(DDD);
}
Every C programmer that knows what an x86 emulator is knows
that when H0 emulates the machine language of Infinite_Loop,
Infinite_Recursion, and DDD that it must abort these emulations
so that itself can terminate normally.
When this is construed as non-halting criteria then simulatingIt is construed as non-halting BECAUSE it has been shown that your H0 *WILL* terminate its PARTIAL emulation of the code it is emulating and returning.
termination analyzer H0 is correct to reject these inputs as
non-halting by returning 0 to its caller.
Simulating termination analyzers must report on the behaviorRight, so H0 is REQUIRED to return, and thus if the termination analyser knows that H0 is a termination analyzer it knows that the call to H0 MUST return, and thus DDD must be a terminating program.
that their finite string input specifies thus H0 must report
that DDD correctly emulated by H0 remains stuck in recursive
simulation.
An H0 that doesn't know this, and can't figure out that H0 will return, but just keeps emulating H0 emulating its input will just fail to meet its own requirement to return.
<MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>Right, and the only definition Professor Sipser uses for "Correct Simulation" is a simulation that EXACTLY REPRODUCES the behavior of the directly executed program represented by the input. Your H doesn't do that, nor correctly predicts the behavior of such a simulation of the input (since that behavior is to halt) so it can never proper avail itself of the second paragraph, so does so erroneously getting the wrong answer.
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
H can abort its simulation of D and correctly report that D
specifies a non-halting sequence of configurations.
</MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>
People are trying to get away with disagreeing with the semanticsExcept that the "N Steps of DDD correctly emulated" is NOT the definition of the "behavior" of the input DDD.
of the x86 language by disagreeing that
The call from DDD to HHH(DDD) when N steps of DDD are correctly
emulated by any pure function x86 emulator HHH cannot possibly
return.
"inputs" Do not have "behavoir", that is a property of a program, so the input only "represents" that program, in this case the program DDD.
The call from DDD to HHH(DDD) when N steps of DDD are correctly--
emulated by any pure function x86 emulator HHH cannot possibly
return.
_DDD()
[00002172] 55 push ebp ; housekeeping
[00002173] 8bec mov ebp,esp ; housekeeping
[00002175] 6872210000 push 00002172 ; push DDD
[0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
[0000217f] 83c404 add esp,+04
[00002182] 5d pop ebp
[00002183] c3 ret
Size in bytes:(0018) [00002183]
Les messages affichés proviennent d'usenet.