Deutsch   English   Français   Italiano  
<vvk1ha$2ibbd$1@dont-email.me>

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

Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: olcott <polcott333@gmail.com>
Newsgroups: comp.theory
Subject: Re: Incorrect requirements --- Computing the mapping from the input
 to HHH(DD)
Date: Thu, 8 May 2025 23:49:46 -0500
Organization: A noiseless patient Spider
Lines: 167
Message-ID: <vvk1ha$2ibbd$1@dont-email.me>
References: <vv97ft$3fg66$1@dont-email.me> <vvgr22$1ag3a$2@dont-email.me>
 <vvgt36$1auqp$2@dont-email.me> <vvgtbe$1b0li$1@dont-email.me>
 <vvguot$1auqp$3@dont-email.me> <vvh0t2$1b939$1@dont-email.me>
 <vvhap5$1hp80$1@dont-email.me> <vvhf20$1ihs9$1@dont-email.me>
 <vvhfnd$1hvei$3@dont-email.me> <vvil99$1ugd5$1@dont-email.me>
 <vvinvp$1vglb$1@dont-email.me> <vviv75$222r6$1@dont-email.me>
 <vvj1fp$22a62$1@dont-email.me> <vvj2j6$23gk7$1@dont-email.me>
 <as9TP.251456$lZjd.93653@fx05.ams4> <87msbmeo3b.fsf@nosuchdomain.example.com>
 <vvjcge$27753$2@dont-email.me> <87a57mek8r.fsf@nosuchdomain.example.com>
 <vvjgh7$28g5i$4@dont-email.me> <87seled0zy.fsf@nosuchdomain.example.com>
 <vvjobj$28g5i$11@dont-email.me> <87zffmbeyt.fsf@nosuchdomain.example.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 09 May 2025 06:49:50 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="b8226b0a928845ead4a9adb4b3b34c7d";
	logging-data="2698605"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX187ix8BbGcBmZ7uJQiZ5ZYq"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:pl94XaFxt2JdsKFLADhQ7u1Aj9E=
X-Antivirus-Status: Clean
X-Antivirus: Norton (VPS 250508-4, 5/8/2025), Outbound message
In-Reply-To: <87zffmbeyt.fsf@nosuchdomain.example.com>
Content-Language: en-US

On 5/8/2025 11:11 PM, Keith Thompson wrote:
> olcott <polcott333@gmail.com> writes:
>> On 5/8/2025 8:30 PM, Keith Thompson wrote:
>>> olcott <polcott333@gmail.com> writes:
>>>> On 5/8/2025 6:49 PM, Keith Thompson wrote:
>>>>> olcott <polcott333@gmail.com> writes:
>>>>> [...]
>>>>>> void DDD()
>>>>>> {
>>>>>>      HHH(DDD);
>>>>>>      return;
>>>>>> }
>>>>>>
>>>>>> If you are a competent C programmer then you
>>>>>> know that DDD correctly simulated by HHH cannot
>>>>>> possibly each its own "return" instruction.
>>>>> "cannot possibly each"?
>>>>> I am a competent C programmer (and I don't believe you can make
>>>>> the same claim).  I don't know what HHH is.  The name "HHH" tells
>>>>> me nothing about what it's supposed to do.  Without knowing what
>>>>> HHH is, I can't say much about your code (or is it pseudo-code?).
>>>>>
>>>>
>>>> For the purpose of this discussion HHH is exactly
>>>> what I said it is. It correctly simulates DDD.
>>> Does HHH correctly simulate DDD *and do nothing else*?
>>> Does HHH correctly simulate *every* function whose address is passed
>>> to it?  Must the passed function be one that takes no arguments
>>> and does not return a value?
>>> Can HHH just *call* the function whose address is passed to it?
>>> If it's a correct simulation, there should be no difference between
>>> calling the function and "correctly simulating" it.
>>> My knowledge of C tells me nothing about *how* HHH might simulate
>>> DDD.
>>
>> HHH can only simulate a function that take no arguments
>> and has no return value. HHH also simulates the entire
>> chain of functions that this function calls. These can
>> take arguments or not and have return values or not.
>>
>> Thus HHH ends up simulating itself (and everything
>> that HHH calls) simulating DDD in an infinite
>> sequence of recursive emulation until OOM error.
>>
>>>> We need not know anything else about HHH to
>>>> know that DDD correctly simulated by HHH cannot
>>>> possibly REACH its own "return" instruction.
>>> Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
>>> does nothing else, your code would be equivalent to this:
>>>       void DDD(void) {
>>>           DDD();
>>>           return;
>>>       }
>>
>> Exactly. None of these people on comp.theory could
>> get that even after three years.
> 
> I find that difficult to believe.
> 
>>> Then the return statement (which is unnecessary anyway) will never be
>>> reached.
>>
>> It is only there to mark a final halt state.
> 
> The closing "}" does that equally well.
> 
>>> In practice, the program will likely crash due to a stack
>>> overflow, unless the compiler implements tail-call optimization, in
>>> which case the program might just run forever -- which also means the
>>> unnecessary return statement will never be reached.
>>>
>>
>> Yes you totally have this correctly.
>> None of the dozens of comp.theory people could
>> ever achieve that level of understanding even
>> after three years. That is why I needed to post
>> on comp.lang.c.
> 
> I'll note that I've posted in comp.theory, not in comp.lang.c.
> I never see anything you post in comp.lang.c.
> 
>>> This conclusion relies on my understanding of what you've said about
>>> your code, which I consider to be unreliable.
>>
>> I am not even talking about my code. I am
>> talking about the purely hypothetical code
>> that you just agreed to.
> 
> Do not overestimate what I've agreed to.  I must still consider the
> possibility that I've been led into a logical trap of some sort,
> and that I've missed some subtle flaw.
> 
>>> No doubt you believe that there is some significance to the
>>> apparent fact that the return statement will never be reached,
>>> assuming that's a correct and relevant conclusion.  I don't know
>>> what that significance might be.
>>
>> I will tell you that later after you understand
>> some prerequisite ideas first.
>>
>> int DD()
>> {
>>    int Halt_Status = HHH(DD);
>>    if (Halt_Status)
>>      HERE: goto HERE;
>>    return Halt_Status;
>> }
> 
> So now HHH returns an int result, and you store that result
> in a variable named "Halt_Status".  You haven't said here what
> the meaning of that result might be, and I decline to make any
> assumptions based on what you've called it.  You could rename
> "Halt_Status" to "Foo" and have effectively identical code.
> 
> Previously DDD would "correctly simulate" the function whose address is
> passed to it.  Now it does that and returns an int result.
> 
> If you want to say anything about the meaning of the result returned
> by HHH, feel free to say it.
> 
>> The same thing that applied to DDD equally
>> applies to the more complicated DD.
>>
>> When 1 or more instructions of DD are correctly
>> simulated by HHH the correctly simulated DD
>> cannot possibly get past its call to HHH(DD).
>> Thus DD also never reaches its "return" instruction.
> 
> Now you're talking about simulating "1 or more instructions"
> of DD.  I thought that HHH was supposed to "accurately simulate"
> the function whose argument is passed to it.  Emulating just "1 or
> more instructions" is not accurate simulation.
> 
> If HHH *fully* simulates the execution of DD, then your code above
> exhibits endless recursion, 

In computer science "halting" is not merely stopping running.
"Halting" is reaching a final halt state such as the "return"
instruction.

> which is not particularly interesting,
> and it never reaches the "if (Halt_Status)".  (DD calls HHH, which
> simulates DD; HHH, in simulating DD, must do the equivalent of
> calling HHH, and so on.)
> 

It turns out to be very interesting you merely need
to grok a few details first.

> You've introduced the idea of simulating only some finite number
> of instructions of the simulated functions, but you haven't really
> said how that happens (except perhaps in some x86 code that I
> don't understand).  You've implied that a sufficient knowledge of C
> would let someone understand your arguments, but part of what you're
> saying seems to depend on x86 assembly and/or machine code (which I'm
> not going to learn for the sake of this discussion).
> 
> If I would need to understand x86 code to understand your claims, then
> let's just stop here.
> 
> [SNIP]
> 


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