Deutsch   English   Français   Italiano  
<vaumg9$ut9s$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: "Fred. Zwarts" <F.Zwarts@HetNet.nl>
Newsgroups: comp.theory
Subject: Re: DDD emulated by HHH --- (does not refer to prior posts)
Date: Sat, 31 Aug 2024 11:07:20 +0200
Organization: A noiseless patient Spider
Lines: 121
Message-ID: <vaumg9$ut9s$1@dont-email.me>
References: <vajdta$2qe9s$1@dont-email.me> <vak3a0$2teq9$1@dont-email.me>
 <vakhnf$302rl$2@dont-email.me> <vamk7l$3d7ki$1@dont-email.me>
 <van3v7$3f6c0$5@dont-email.me> <vap7b1$3sobs$1@dont-email.me>
 <vapvbc$3vumk$5@dont-email.me>
 <e10aee5b3ede543da42ba76ac4d7f0a0fe762695@i2pn2.org>
 <vasmn8$hmpd$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 31 Aug 2024 11:07:22 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="56101d00a62a2f8eb5c4efbb04550369";
	logging-data="1013052"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX19R8LIjO1zaoDkQmzco/svC"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:2SrR0jc61Gr/7RyPGPpzMF25Itw=
In-Reply-To: <vasmn8$hmpd$1@dont-email.me>
Content-Language: en-GB
Bytes: 7005

Op 30.aug.2024 om 16:58 schreef olcott:
> On 8/30/2024 9:56 AM, joes wrote:
>> Am Thu, 29 Aug 2024 09:07:39 -0500 schrieb 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.
>>>>>>>>> _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.
>>>>>>> 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.
>>>>
>>> HHH correctly predicts what the behavior of DDD would be if this HHH
>>> never aborted its emulation of DDD.
>> Problem is, DDD is then not calling itself, but the non-input of a
>> not-aborting HHH.
>>
> 
> *This is before any aborting occurs*
> *This is before any aborting occurs*
> *This is before any aborting occurs*

Here is your problem. The code of the program and its meaning according 
to the semantics of the x86 language, does not suddenly change when the 
aborting occurs. This finite string describes a program that calls an 
HHH that aborts and halt, after which it returns to DDD and DDD halts.
Your simulator misses the last part of it, because it aborts the 
simulation before it could see it.

> 
> The behavior of
> the directly executed DDD and executed HHH
> is different from the behavior of
> the emulated DDD and the emulated HHH

No, the semantics of the x86 language gives a unique meaning to the 
finite string, which should be honoured by the simulation in the same 
why as by the direct execution.

> 
> and all four of them are emulated by the world
> class x86 emulator libx86emu

And when the unmodified world class simulator simulated the DDD that 
calls the HHH that aborts, we see that it shows the correct halting 
behaviour.

> 
> It is easy to see that when the executed HHH emulates
> DDD that it does this correctly when we look at the
> execution trace and see the the first four instructions
> of DDD are listed.
> 
> _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]
> 
> New slave_stack at:1038c4
> Begin Local Halt Decider Simulation   Execution Trace Stored at:1138cc
> [00002172][001138bc][001138c0] 55         push ebp      ; housekeeping
> [00002173][001138bc][001138c0] 8bec       mov ebp,esp   ; housekeeping
> [00002175][001138b8][00002172] 6872210000 push 00002172 ; push DDD
> [0000217a][001138b4][0000217f] e853f4ffff call 000015d2 ; call HHH(DDD)
> New slave_stack at:14e2ec
> [00002172][0015e2e4][0015e2e8] 55         push ebp      ; housekeeping
> [00002173][0015e2e4][0015e2e8] 8bec       mov ebp,esp   ; housekeeping
> [00002175][0015e2e0][00002172] 6872210000 push 00002172 ; push DDD
> [0000217a][0015e2dc][0000217f] e853f4ffff call 000015d2 ; call HHH(DDD)
> Local Halt Decider: Infinite Recursion Detected Simulation Stopped
> 
> Then this emulated DDD calls an emulated HHH(DDD).
> It is easy to see that when the executed HHH emulates
> itself emulated DDD that it does this correctly when we
> look at the execution trace and see the the first four
> instructions of DDD are listed again.
> 

It is also easy to see that this simulation is correct only for the 
first part. It is incorrect, because it decides that there is an 
infinite recursion, where there is only a finite recursion. One 
recursion later the simulated HHH would have printed the same message 
about an infinite recursion and halt, after which it would return to the 
simulated DDD and the simulated DDD would halt.
Therefore, this simulation is incorrect because it skips the last few 
instruction of the halting program.

The unmodified world class simulator did not abort at this point and 
continued the simulation and showed that DDD halts.
The simulator modified by olcott thinks that there is a non-halting 
behaviour. Guess which one is right.