Sujet : Re: Try and prove that DDD correctly emulated by HHH reaches its final halt state
De : richard (at) *nospam* damon-family.org (Richard Damon)
Groupes : comp.theoryDate : 10. May 2025, 02:59:14
Autres entêtes
Organisation : i2pn2 (i2pn.org)
Message-ID : <b435599dbb696f20b0e162f4dd2f4bc627b2970c@i2pn2.org>
References : 1
User-Agent : Mozilla Thunderbird
On 5/9/25 9:26 PM, olcott wrote:
void DDD()
{
HHH(DDD);
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]
Try to show how DDD emulated by HHH according to the
rules of the x86 language reaches its own "ret"
instruction final halt state.
You are just committing the strawman error.
The responce to your first claim wasn't that HHH could emulate its input to a final state, but that by your setup, HHH couldn't emulate its input for many steps at all.
Your HHH just can not emuolate the above input and still meet the requirements of being a pure function.
If you remove that requirement, then the skecth of the emulation would be:
DDD push ebp
DDD moves esp to ebp
DDD pushes the address of DDD to the stack
DDD calls HHH
HHH pushes ebp
HHH oves esp to ebp
HHH loads static varialbe flag
HHH test it and sees it is 1
HHH then sets eax to 0
HHH Then returns to DDD
DDD theh increase esp by 4 to remove the parameter it pushed
DDD then pops to ebp
DDD then returns to caller and finishes.
This represents an HHH that begins by:
int HHH(ptr P) {
static bool flag = 0;
if (flag) return 0;
flag = 1;
/* rest of your code for HHH that never aborts its simulation */
}
Sorry, you claims are just invalid.