Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <v4qrmd$a0nm$6@i2pn2.org>
Deutsch   English   Français   Italiano  
<v4qrmd$a0nm$6@i2pn2.org>

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

Path: ...!weretis.net!feeder9.news.weretis.net!news.nk.ca!rocksolid2!i2pn2.org!.POSTED!not-for-mail
From: Richard Damon <richard@damon-family.org>
Newsgroups: comp.theory,sci.logic
Subject: Re: Simulating termination analyzers for dummies
Date: Mon, 17 Jun 2024 22:33:49 -0400
Organization: i2pn2 (i2pn.org)
Message-ID: <v4qrmd$a0nm$6@i2pn2.org>
References: <v4oaqu$f9p5$1@dont-email.me> <v4os9e$i70m$1@dont-email.me>
 <v4p9mb$lavj$1@dont-email.me> <v4qe53$a0nm$1@i2pn2.org>
 <v4qn65$10qh6$1@dont-email.me> <v4qnkf$a0nm$5@i2pn2.org>
 <v4qpvo$10qh6$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 18 Jun 2024 02:33:49 -0000 (UTC)
Injection-Info: i2pn2.org;
	logging-data="328438"; mail-complaints-to="usenet@i2pn2.org";
	posting-account="diqKR1lalukngNWEqoq9/uFtbkm5U+w3w6FQ0yesrXg";
User-Agent: Mozilla Thunderbird
X-Spam-Checker-Version: SpamAssassin 4.0.0
In-Reply-To: <v4qpvo$10qh6$2@dont-email.me>
Content-Language: en-US
Bytes: 5926
Lines: 138

On 6/17/24 10:04 PM, olcott wrote:
> On 6/17/2024 8:24 PM, Richard Damon wrote:
>> On 6/17/24 9:16 PM, olcott wrote:
>>> On 6/17/2024 5:42 PM, Richard Damon wrote:
>>>> On 6/17/24 8:20 AM, olcott wrote:
>>>>> On 6/17/2024 3:31 AM, Fred. Zwarts wrote:
>>>>>> Op 17.jun.2024 om 05:33 schreef olcott:
>>>>>>> To understand this analysis requires a sufficient knowledge of
>>>>>>> the C programming language and what an x86 emulator does.
>>>>>>>
>>>>>>> Unless every single detail is made 100% explicit false assumptions
>>>>>>> always slip though the cracks. This is why it must be examined at
>>>>>>> the C level before it is examined at the Turing Machine level.
>>>>>>>
>>>>>>> typedef void (*ptr)();
>>>>>>> int H0(ptr P);
>>>>>>>
>>>>>>> void Infinite_Loop()
>>>>>>> {
>>>>>>>    HERE: goto HERE;
>>>>>>> }
>>>>>>>
>>>>>>> void Infinite_Recursion()
>>>>>>> {
>>>>>>>    Infinite_Recursion();
>>>>>>> }
>>>>>>>
>>>>>>> void DDD()
>>>>>>> {
>>>>>>>    H0(DDD);
>>>>>>>    return;
>>>>>>> }
>>>>>>>
>>>>>>> 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 simulating
>>>>>>> termination analyzer H0 is correct to reject these inputs as non-
>>>>>>> halting.
>>>>>>>
>>>>>>
>>>>>> For Infinite_Loop and Infinite_Recursion that might be true, 
>>>>>> because there the simulator processes the whole input.
>>>>>>
>>>>>> The H0 case is very different. For H0 there is indeed a false 
>>>>>> assumption, as you mentioned. Here H0 needs to simulate itself, 
>>>>>> but the simulation is never able to reach the final state of the 
>>>>>> simulated self. The abort is always one cycle too early, so that 
>>>>>> the simulating H0 misses the abort. Therefore this results in a 
>>>>>> false negative.
>>>>>> (Note that H0 should process its input, which includes the H0 that 
>>>>>> aborts, not a non-input with an H that does not abort.)
>>>>>>
>>>>>> This results in a impossible dilemma for the programmer. It he 
>>>>>> creates a H that does not abort, it will not terminate. 
>>>>>
>>>>> *Therefore what I said is correct*
>>>>> When every input that must be aborted is construed as non-halting
>>>>> then the input to H0(DDD) is correctly construed as non-halting.
>>>>
>>>> In other words, if you allow yourself to LIE, you can claim the 
>>>> wrong answer is right.
>>>>
>>>> Since your "Needing to abort" is NOT the same as halting, all you 
>>>> are doing is admitting that your whole logic system is based on the 
>>>> principle that LIES ARE OK.
>>>>
>>>
>>> "Needing to abort" <is> the same as a NOT halting input.
>>> You are simply too ignorant to understand this.
>>>
>>
>> Nope, not if you are comparing DIFFERENT version of the input.
>>
> It is ALWAYS the exact same sequence of bytes.

But if it doesn't include the bytes of H, you can't do what you claim, 
as the "Correct Simulation" needs to STOP and go no further at the call 
to H, as you can't simulate in the correct order the instuctions you do 
not have.

And when you do include the bytes from H, then you no longer can claim 
that they are the same bytes.

It just shows that you have LIED when you say the input is JUST the 
dozen or so instruction of the C function provided.

For it to actually be asking the decider the question it is supposed to 
be asking, it needs to include the bytes of the full program.

This is why you try to LIE that you can't make a proper copy of H, 
because it makes you claim clearly false.


> 
>>
>>> When I explain this in terms of of mathematical mappings
>>> from finite strings to behaviors this simply leaps over
>>> everyone's head.
>>>
>>
>> As has been shown, you can apply the input to H0 (when you don't 
>> change it, so the call to H0 still goes to this H0), to a UTM and it 
>> will reach the final end, so *THIS* H0 did not "Need" to abort its 
>> input, but did because it was programmend to.
>>
> 
> Not so much.
> 
> void DDD()
> {
>    UTM(DDD);
> }
> 

WRONG.

DDD() doesn't change, I guess are just too stupid to undrstand that.

You just failed Requirements analysis 101.

The above does not match the definion of the contray program of the 
proofs. (unless you are trying to claim that UTM is a valid Halt Decider).


It needs to be main calling UTM(DDD) while DDD still calls H0(DDD)

You are just proving that you are a total idiot.