Deutsch   English   Français   Italiano  
<v43oau$3b12n$1@dont-email.me>

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

Path: ...!feeds.phibee-telecom.net!3.eu.feeder.erje.net!feeder.erje.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Mikko <mikko.levanto@iki.fi>
Newsgroups: comp.theory
Subject: Re: How Partial Simulations correctly determine non-halting ---Ben's 10/2022 analysis
Date: Sun, 9 Jun 2024 11:15:26 +0300
Organization: -
Lines: 172
Message-ID: <v43oau$3b12n$1@dont-email.me>
References: <v3j20v$3gm10$2@dont-email.me> <J_CdnTaA96jxpcD7nZ2dnZfqnPudnZ2d@brightview.co.uk> <87h6eamkgf.fsf@bsb.me.uk> <v3kcdj$3stk9$1@dont-email.me> <v3l7uo$13cp$8@dont-email.me> <v3lcat$228t$3@dont-email.me> <v3mq9j$chc3$1@dont-email.me> <v3mrli$chc4$1@dont-email.me> <_gWdnbwuZPJP2sL7nZ2dnZfqn_GdnZ2d@brightview.co.uk> <v3nkqr$h7f9$3@dont-email.me> <v3p4ka$sk6h$1@dont-email.me> <v3pp7p$v133$8@dont-email.me> <v3s27e$1f9kd$1@dont-email.me> <v3sf1n$1gra7$11@dont-email.me> <v3sjo9$1ialb$1@dont-email.me> <v3skoo$1iedv$1@dont-email.me> <v3u9ej$1v7rn$1@dont-email.me> <v3v6i7$23l33$1@dont-email.me> <v3v70o$21qlc$3@dont-email.me> <v3v7j8$242e9$2@dont-email.me> <v3v7qh$21qlc$4@dont-email.me> <v3v8f9$242e9$3@dont-email.me> <v3v96e$39q1p$4@i2pn2.org> <v3v9ll$242e9$7@dont-email.me> <v3vcqi$3a78f$1@i2pn2.org> <HhucnUC3H-bzWP77nZ2dnZfqn_qdnZ2d@brightview.co.uk> <v40hlv$3bc44$2@i2pn2.org> <v40jkr$2elkd$5@dont-email.me> <v41kr9$3cg3t$10@i2pn2.org> <v41n5l$2kanc$7@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 09 Jun 2024 10:15:27 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="77c7217a9c7c64c7766c5a2e0efa49c1";
	logging-data="3507287"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX19IVd0BSdktlr1p+P+fWhXX"
User-Agent: Unison/2.2
Cancel-Lock: sha1:GPjra1KVVyHk15tpXl+ipRuVV6U=
Bytes: 11227

On 2024-06-08 13:43:17 +0000, olcott said:

> On 6/8/2024 8:03 AM, Richard Damon wrote:
>> On 6/7/24 11:36 PM, olcott wrote:
>>> On 6/7/2024 10:03 PM, Richard Damon wrote:
>>>> On 6/7/24 10:43 PM, Mike Terry wrote:
>>>>> On 07/06/2024 17:34, joes wrote:
>>>>>> Am Fri, 07 Jun 2024 10:40:37 -0500 schrieb olcott:
>>>>>>> On 6/7/2024 10:32 AM, joes wrote:
>>>>>>>> Am Fri, 07 Jun 2024 10:20:09 -0500 schrieb olcott:
>>>>>>>>> On 6/7/2024 10:09 AM, Python wrote:
>>>>>>>>>> Le 07/06/2024 à 17:05, olcott a écrit :
>>>>>>>>>>> On 6/7/2024 9:55 AM, Python wrote:
>>>>>>>>>>>> Le 07/06/2024 à 16:47, olcott a écrit :
>>>>>> 
>>>>>>>>>>>>> The issue here is that I proved that DD correctly simulated by HH
>>>>>>>>>>>>> has different behavior than the directly executed DD(DD) and
>>>>>>>>>>>>> everyone's "rebuttal" to this proof is to simply ignore it.
>>>>>>>>>>> When you actually try to form a rebuttal of the above you will see
>>>>>>>>>>> that I am correct. So far everyone simply ignores the proof that I
>>>>>>>>>>> am correct as their only rebuttal.
>>>>>>>>> A {correct simulation} means that each instruction of the above x86
>>>>>>>>> machine language of DD is correctly simulated by HH and simulated in
>>>>>>>>> the correct order.
>>>>>>>> And to the end. Thus it can't behave differently than direct execution.
>>>>>>> You must not be very good at programming if you believe that
>>>>>>> Infinite_Recursion must be simulated "to the end"
>>>>>> As I said before, if there is no end the simulation can't end either.
>>>>> 
>>>>> PO chooses to leave his terminology ambiguous, so we have 1000 post 
>>>>> threads perpetuated by little more than verbal misunderstandings.
>>>>> 
>>>>> All PO's "simulating halt deciders" (SHD) are actually "partial 
>>>>> simulating partial halt deciders":
>>>>> They partially simulate their input computation, while monitoring the 
>>>>> simulation state for patterns which *PO* just believes (without proof) 
>>>>> indicate non-halting.  When such a pattern is detected, the SHD 
>>>>> abandons its simulating activity ["aborts" its simulation], and returns 
>>>>> nonhalting.  Also, PO does not claim that his SHDs decide all inputs 
>>>>> correctly - or even that they halt for all inputs (which a decider 
>>>>> must).  He is really just interested in the H(D,D) case.
>>>>> 
>>>>> PO has a couple of such rules/patterns, and at least one of them is 
>>>>> sound: the "tight loop" pattern.  If an input (P,I) contains a tight 
>>>>> loop (like "LOOP: goto LOOP"), and assuming PO has coded the rule 
>>>>> correctly, his H/HH will detect the tight loop while simulating the 
>>>>> code and correctly return non-halting.  In this scenario we have a 
>>>>> non-terminating computation, but PO's /partial/ simulation obviously 
>>>>> ends through aborting the target.  THERE'S NOTHING WRONG WITH THAT. If 
>>>>> someone wants to claim "that's not valid simulation" then right or 
>>>>> wrong it's nothing more than a disagreement over use of terminology, 
>>>>> and nothing is achieved by that.
>>>>> 
>>>>> PO also has at least one /unsound/ rule: his "infinite recursive 
>>>>> simulation" rule.  That rule matches computations that in fact halt. 
>>>>> Despite PO's colourful language like "...until H 'sees that the 
>>>>> simulation will never terminate unless blah blah'" and "...DD 
>>>>> 'specifies infinite recursion to HH'" and so on, the truth is simply 
>>>>> that his H is applying an unsound rule, which leads to it deciding 
>>>>> incorrectly.)
>>>>> 
>>>>> And all the stuff about "correct simulations of DD by HH never reaching 
>>>>> line nn" might be correct if suitably interpreted (as /partial 
>>>>> simulations/ not reaching a simulated halt state, rather than the 
>>>>> /actual computation/ being examined), but its all logically irrelevent 
>>>>> having little to do with actual termination of a given computation.
>>>>> 
>>>>> What makes the SHD work or not work is the matching of rules (patterns 
>>>>> detected in the simulated computation states) that the SHD uses to 
>>>>> trigger an abort.  If a /sound/ rule matches, the SHD will decide 
>>>>> correctly. If an /unsound/ rule matches it may decide incorrectly (as 
>>>>> with PO's H(D,D)), or in other situations it might be correct "by 
>>>>> fluke".
>>>>> 
>>>>> If PO's H used only sound rules, it would not decide input (D,D) 
>>>>> incorrectly - but unfortunately neither would it decide correctly - it 
>>>>> would never terminate /for that input/.  (I find that kind of neat...)
>>>>> 
>>>>>> 
>>>>>>>>> Anyone claiming that HH should report on the behavior of the directly
>>>>>>>>> executed DD(DD) is requiring a violation of the above definition of
>>>>>>>>> correct simulation.
>>>>>>>> But those are the same. How does simulating something change it?
>>>>>>> It seems to boil down to you just don't know enough about programming
>>>>>>> otherwise it would occur to you that there cannot possibly exist any
>>>>>>> correct rebuttal to the following:
>>>>>> Answer the question. Why should the simulation differ from direct
>>>>>> execution?
>>>>> 
>>>>> [Let's assume code is properly restricted to exclude the complications 
>>>>> of "cheating" in PO's x86utm environment through use of mutable static 
>>>>> variables and the like.]
>>>>> 
>>>>> Obviously they wouldn't, except in so far as "partial simulation" 
>>>>> differs from "full simulation". I.e. all steps will match precisely, up 
>>>>> to the point where the partial simulation is abandoned.
>>>>> 
>>>>> And in PO's H(D,D) vs D(D) example that is exactly what the traces 
>>>>> show:  The simulated and direct traces match exactly, right up to the 
>>>>> point where H aborts the simulation.  (The full computation steps of 
>>>>> D(D) then proceeding further until D terminates a bit later.)
>>>>> 
>>>>> Even though I put the two traces side-by-side for PO, he still insists 
>>>>> the "behaviour is different".  Well, perhaps he just means that the H 
>>>>> simulation was abandonned whereas directly executed D(D) proceeded 
>>>>> further and eventually terminated?  If so, then /so what/? I think his 
>>>>> problem here is nothing to do with /simulations/ not reaching whatever 
>>>>> line of code, but more the /reason/ that his H aborted - it matched his 
>>>>> (unsound) non-halting pattern, and he just really really really really 
>>>>> believes that pattern is sound.
>>>>> 
>>>>> So now he needs to account for two "verified facts":  1)  D(D) 
>>>>> computation never halts (/his unsound pattern matched!/)  2) D(D) 
>>>>> computation halts when run directly.  That forces him to claim there 
>>>>> are two different behaviours [/beyond/ the simple truncation of the 
>>>>> aborted trace] for the one computation, and to come up with some Words 
>>>>> to justify that position (like "pathological self reference", 
>>>>> subjective questions) and then More Words to say that his other Words 
>>>>> are "the true meaning of halting" etc. etc.  All nonsense flowing from 
>>>>> not being able to accept his rule is just wrong.
>>>>> 
>>>>> 
>>>>> Mike.
>>>>> 
>>>> 
>>>> The last time I remember him actually trying to answer, the difference 
>>>> was that the order of who started mattered, because D(D) calling H(D,D) 
>>>> meant that the H(D,D) that was called doesn't get stuck in the loop, 
>>>> but recognizes the loop and gets out, while when H(D,D) simulated D(D) 
>>>> and that first H(D,D) sees that the simulated H(D,D) would just get 
>>>> into a loop, that incorrect decision becomes the actual behavior of 
>>>> that simulated H(D,D).
>>>> 
>>>> So it is always the first H(D,D) that returns, and the second one 
>>>> doesn't, which just proes that is can't be a pure function, or that 
>>>> rule doesn't apply to functions whose simulation has been aborted.
>>>> 
>>>> Of course he also think that aborting th simulation mean that hte 
>>>> machine being simulate had its plug pulled at that point, so it isn't 
>>>> proper to look at the direct execution after that,
>>>> 
>>>> He clearly doesn't seem to understand how these sorts of machines work.
>>> 
>>> DD(DD) is just like infinite recursion that gets terminated at
>>> its second recursive call. DD(DD) halts only because HH(DD,DD)
>>> correctly determines that its input DOES NOT HALT.
>> 
>> Except a potentially infinite loop that has code that breaks out of 
>> that loop will halt.
>> 
> 
> <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>
>    If simulating halt decider H correctly simulates its input D
>    until H correctly determines that its simulated D would never
>    stop running unless aborted then
> 
>    H can abort its simulation of D and correctly report that D
>    specifies a non-halting sequence of configurations.
> </MIT Professor Sipser agreed to ONLY these verbatim words10/13/2022>
> 
> No you are wrong.

It does not make much sense to say "you are wrong" without saying
about what and what is right instead.

Besides, there should be either a comma after "No" or the word "not"
after "are". We may guess from context which one you meant but a
guess is only a guess.

-- 
Mikko