Sujet : Re: DDD emulated by HHH --- (does not refer to prior posts)
De : F.Zwarts (at) *nospam* HetNet.nl (Fred. Zwarts)
Groupes : comp.theoryDate : 29. Aug 2024, 21:37:01
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vaqiku$34ug$1@dont-email.me>
References : 1 2 3 4 5 6 7 8 9 10 11
User-Agent : Mozilla Thunderbird
Op 29.aug.2024 om 20:19 schreef olcott:
On 8/29/2024 12:50 PM, Fred. Zwarts wrote:
Op 29.aug.2024 om 19:32 schreef olcott:
On 8/29/2024 12:22 PM, Fred. Zwarts wrote:
Op 29.aug.2024 om 16:07 schreef olcott:
On 8/29/2024 2:17 AM, Mikko wrote:
On 2024-08-28 12:08:06 +0000, olcott said:
>
On 8/28/2024 2:39 AM, Mikko wrote:
On 2024-08-27 12:44:31 +0000, olcott said:
>
On 8/27/2024 3:38 AM, Fred. Zwarts wrote:
Op 27.aug.2024 om 04:33 schreef olcott:
This is intended to be a stand-alone post that does not
reference anything else mentioned in any other posts.
>
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]
>
When we assume that:
(a) HHH is an x86 emulator that is in the same memory space as DDD.
(b) HHH emulates DDD according to the semantics of the x86 language.
>
then we can see that DDD emulated by HHH cannot possibly get past
its own machine address 0000217a.
>
>
>
Yes, we see. In fact DDD is not needed at all.
>
A straw man fallacy (sometimes written as strawman) is the informal fallacy of refuting an argument different from the one actually under discussion...
https://en.wikipedia.org/wiki/Straw_man
>
You should also point a link to the equivocation fallacy. You use it
more often than straw man.
>
Isomorphism is not equivocation
>
The use of HHH for many purposes (a specific program, an unpsecified
memeber of a set of programs, a hypothetical program) is.
>
Your first posting looked like you were going to apply equivocation
later in the discussion. Now, after several later messages, it seems
that you want to apply the fallacy of "moving the goal posts" instead.
>
>
void EEE()
{
HERE: goto HERE;
return;
}
>
HHH correctly predicts what the behavior of EEE would
be if this HHH never aborted its emulation of EEE.
>
void DDD()
{
HHH(DDD);
return;
}
>
HHH correctly predicts what the behavior of DDD would
be if this HHH never aborted its emulation of DDD.
Which is incorrect, because HHH is not allowed to change the input. The simulating HHH may abort, but it may not ignore the fact that the input (the simulated HHH) is coded to abort when it sees the 'special condition'. Otherwise it would decide about a non-input, which is not allowed.
>
>
*I told you this too many times so you must be a liar*
No DDD ever reaches its "return" instruction no matter
what-the-Hell that HHH does,
>
Exactly. Do you finally understand that HHH cannot possibly simulate itself up to the end?
*That seems to be a stupid (ignoramus) thing to say*
DDD forces emulated HHH to remain stuck in recursive
simulation forcing the emulated HHH to never reach
its own final halt state.
That is a stupid thing to say. DDD calls HHH, which after a few recursions detects that there is a 'special condition', after which HHH returns to DDD and DDD returns.
We see this in the direct simulation and in the correct simulation by HHH1.
It is clear that DDD does not force emulated HHH to remain stuck in recursive> simulation and does not force the emulated HHH to never reach its own final halt state.
It is HHH that aborts prematurely, so that it misses the point that the simulated HHH would detect the 'special condition' and halt, after which DDD would halt.
Do you have at least a BS degree in CS? Richard does not.
Irrelevant question, because even a beginner sees that DDD is a halting program and does not force HHH to remain stuck.
Moreover, your problem is not DDD, but HHH itself:
int main() {
return HHH(main);
}
It is HHH that halts and decides that it does not halt.