Deutsch   English   Français   Italiano  
<vqquag$29meg$8@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!eternal-september.org!.POSTED!not-for-mail
From: olcott <polcott333@gmail.com>
Newsgroups: comp.theory
Subject: Re: Every sufficiently competent C programmer knows ---
 Counter-Factual ERROR
Date: Tue, 11 Mar 2025 22:16:31 -0500
Organization: A noiseless patient Spider
Lines: 169
Message-ID: <vqquag$29meg$8@dont-email.me>
References: <vqntaq$1jut5$1@dont-email.me> <vqp388$1tvqa$1@dont-email.me>
 <vqpdv9$202b2$2@dont-email.me> <vqperb$20c9k$2@dont-email.me>
 <E6mcnWv3nMa66036nZ2dnZfqnPWdnZ2d@brightview.co.uk>
 <vqqf28$27b1g$1@dont-email.me>
 <2d96ca85f669c5798af817ae63320fae806c6e95@i2pn2.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 12 Mar 2025 04:16:33 +0100 (CET)
Injection-Info: dont-email.me; posting-host="da28212957632e1bc35b68d4fbc88507";
	logging-data="2415056"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX19mpUD5gVx9IlwPjzuzPUrk"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:q2/qu+w8KzRKnMh59VOaTzT5O00=
X-Antivirus: Norton (VPS 250311-4, 3/11/2025), Outbound message
Content-Language: en-US
In-Reply-To: <2d96ca85f669c5798af817ae63320fae806c6e95@i2pn2.org>
X-Antivirus-Status: Clean
Bytes: 9053

On 3/11/2025 10:04 PM, Richard Damon wrote:
> On 3/11/25 6:56 PM, olcott wrote:
>> On 3/11/2025 12:42 PM, Mike Terry wrote:
>>> On 11/03/2025 13:46, Richard Heathfield wrote:
>>>> On 11/03/2025 13:31, olcott wrote:
>>>>> On 3/11/2025 5:28 AM, Mikko wrote:
>>>>>> On 2025-03-10 23:41:13 +0000, olcott said:
>>>>>>
>>>>>>> typedef void (*ptr)();
>>>>>>> int HHH(ptr P);
>>>>>>>
>>>>>>> void Infinite_Loop()
>>>>>>> {
>>>>>>>    HERE: goto HERE;
>>>>>>>    return;
>>>>>>> }
>>>>>>>
>>>>>>> void Infinite_Recursion()
>>>>>>> {
>>>>>>>    Infinite_Recursion();
>>>>>>>    return;
>>>>>>> }
>>>>>>>
>>>>>>> void DDD()
>>>>>>> {
>>>>>>>    HHH(DDD);
>>>>>>>    return;
>>>>>>> }
>>>>>>>
>>>>>>> int DD()
>>>>>>> {
>>>>>>>    int Halt_Status = HHH(DD);
>>>>>>>    if (Halt_Status)
>>>>>>>      HERE: goto HERE;
>>>>>>>    return Halt_Status;
>>>>>>> }
>>>>>>>
>>>>>>> That when HHH correctly emulates N steps of the
>>>>>>> above functions that none of these functions can
>>>>>>> possibly reach their own "return" instruction
>>>>>>> and terminate normally.
>>>>>>
>>>>>> Every competent programmer knows that the information given is
>>>>>> insufficient to determine whether HHH emulates at all, and whether
>>>>>> it emulates correctly if it does.
>>>>>>
>>>>>>> Since HHH does see that same pattern that competent
>>>>>>> C programmers see it correctly aborts its emulation
>>>>>>> and rejects these inputs as non terminating.
>>>>>>
>>>>>> Whether HHH does see those patterns cannot be inferred from the 
>>>>>> information
>>>>>> given. Only about DDD one can see that it halts if HHH returns. In 
>>>>>> addition,
>>>>>> the given information does not tell whether HHH can see patterns 
>>>>>> that are
>>>>>> not there.
>>>>>>
>>>>>> How many competent programmers you have asked?
>>>>>>
>>>>>
>>>>> Two C programmers with masters degrees in computer science
>>>>> agree that DDD correctly emulated by HHH cannot possibly
>>>>> reach its own "return" instruction and terminate normally.
>>>>
>>>> Bring 'em on. Perhaps /they/ have the source to HHH, because without 
>>>> it you don't have anything. (And btw whatever it is you claim to 
>>>> have is far from clear, because all I've seen so far is an attempt 
>>>> to express the Halting Problem in C and pseuodocode, where the 
>>>> pseudocode reads: HHH(){ magic happens }
>>>
>>> It takes newcommers a while to understand the context behind what PO 
>>> is saying, and he never bothers to properly explain it himself, and 
>>> is incapable of doing so in any rigorous fashion.
>>>
>>> So I'll explain for you my interpretation.
>>>
>>> His HHH is a C function called by DDD, which will "simulate" DDD(). 
>>> The simulation consists of simulating the individual x86 instructions 
>>> of DDD [and functions it calls] sequentially, and may only be a / 
>>> partial/ simulation, because HHH also contains logic to analyse the 
>>> progress of the simulation, and it may decide at some point to simply 
>>> stop simulating.  (This being referred to as HHH "aborting" its 
>>> simulation.)
>>>
>>> Of course, we expect that the (partial) simulation of DDD will 
>>> exactly track the direct execution of DDD, up to the point where HHH 
>>> aborts the simulation.  [This is NOT what PO's actual HHH code does, 
>>> due to bugs/ design errors/misunderstandings etc., but for the 
>>> purpose of PO's current point, you might consider this to be what 
>>> happens.]
>>>
>>> So if we imagine HHH never aborts, then HHH simulates DDD(), which 
>>> calls HHH, and (simulated) HHH will again simulate DDD() - a nested 
>>> simulation.  (PO calls this recursive simulation.)  This continues, 
>>> and such an HHH will obviously never terminate - in particular THE 
>>> SIMULATION by outer HHH will never proceed as far as DDD's final ret 
>>> instruction.  (This is genuine "infinitely recursive simulation")
>>>
>>> OTOH if HHH logic aborts the simulation at some point, regardless of 
>>> how many nested levels of simulation have built up, it will be the / 
>>> outer/ HHH that aborts, because the outer HHH is ahead of all the 
>>> simulated HHH's in its progress and will reach its abort criterion 
>>> first.  At the point where it aborts, the DDD it is simulating will 
>>> clearly not have reached its final ret instruction, as then its 
>>> simulation would have ended "normally" rather than aborting.
>>>
>>> So whatever HHH's exact logic and abort criteria, it will not be the 
>>> case that its *simulation of DDD* progresses as far as DDD's final 
>>> ret instruction:  either HHH never aborts so never terminates, or if 
>>> it does abort, the (outer) HHH simulating it will abort DDD before it 
>>> gets to the final ret instruction.
>>>
>>> The key point here is that we are not talking about whether DDD() 
>>> halts!  We are only talking about whether HHH's /simulation/ of DDD 
>>> proceeds as far as simulating the final DDD ret instruction.  So at 
>>> this point we are not talking about the Halting Problem, as that is 
>>> concerned with whether DDD() halts, not whether some partial 
>>> simulation of DDD() simulates as far as the ret instruction.
>>>
>>> Given that HHH is free to stop simulating DDD *whenever it wants*, 
>>> you might consider it rather banal to be arguing for several months 
>>> over whether it actually simulates as far as DDD's return. After all, 
>>> it could simulate one instruction and then give up, so it didn't get 
>>> as far as DDD returning - but SO WHAT!?  Why is PO even considering 
>>> such a question?
>>>
>>> [PO would say something like "/however far/ HHH simulates this 
>>> remains the case", misunderstanding the fact that here he is talking 
>>> about multiple different HHHs, each with their own distinct DDDs. 
>>> (Yes, none of those different HHHs simulate their corresponding DDD 
>>> to completion, but all of those DDD halt [if run directly], assuming 
>>> their HHH aborts the simulation at some point.  We can see this just 
>>> from the given code of DDD: if HHH returns, DDD returns...)]
>>>
>>> But if you think PO properly understands this you would be vastly 
>>> overestimating his reasoning powers and his capacity for abstract 
>>> thought.  Even if you "agree" that HHH (however coded) will not 
>>> simulate DDD to completion, you would not really be "agreeing" with 
>>> PO as such, because that would imply you understand PO's 
>>> understanding of all that's been said, and that there is a shared 
>>> agreement on the meaning of what's been said and its consequences 
>>> etc., and we can guarantee that will NOT be the case!  We could say 
>>> PO "fractally" misunderstands every technical concept needed to 
>>> properly discuss the halting problem (or any other technical topic).
>>>
>>> PO's "understanding" will entail some idea that the situation means 
>>> that DDD "actually" doesn't halt, or that HHH is "correct" to say 
>>> that DDD doesn't halt. 
>>
>>
>>> (Even though it demonstrably DOES halt if not aborted and simulated 
>>> further. 
>>
>> DDD correctly simulated by HHH never reaches its
>> own "return" instruction and terminates normally
>> in any finite or infinite number of correctly
>> simulated steps.
>>
>>
> 
> And HHH that correctly simulated its input DD 

You did not even bother to notice that I changed the subject
to DDD because DD beyond everyone's skill level.

-- 
Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
hits a target no one else can see." Arthur Schopenhauer