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

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

Path: ...!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: olcott <polcott333@gmail.com>
Newsgroups: comp.theory,sci.logic
Subject: Re: Can D simulated by H terminate normally? --- Message-ID provided
Date: Sat, 18 May 2024 11:24:02 -0500
Organization: A noiseless patient Spider
Lines: 118
Message-ID: <v2akn3$2s4fs$1@dont-email.me>
References: <v0k4jc$laej$1@dont-email.me> <v0l11u$ussl$1@dont-email.me>
 <v0lh24$123q3$1@dont-email.me> <v0lic7$2g492$3@i2pn2.org>
 <v0lkas$12q0o$3@dont-email.me> <v0loq2$2g493$1@i2pn2.org>
 <v0lq7d$14579$2@dont-email.me> <v0ls98$2g492$7@i2pn2.org>
 <v0m29q$166o1$1@dont-email.me> <v0m37e$2gl1e$1@i2pn2.org>
 <v0m3v5$16k3h$1@dont-email.me> <v0m55t$2gl1f$3@i2pn2.org>
 <v0m5sn$172p4$1@dont-email.me> <v0m7em$2gl1f$5@i2pn2.org>
 <v0m7tq$17dpv$1@dont-email.me> <v0m8g9$2gl1e$6@i2pn2.org>
 <v0m978$17k7o$3@dont-email.me> <v0mko6$2hf3s$2@i2pn2.org>
 <v0n59h$1h98e$1@dont-email.me> <v0o037$2j1tu$3@i2pn2.org>
 <v0oc65$1q3aq$3@dont-email.me> <v0p9ts$2ki5r$6@i2pn2.org>
 <v0q1rk$2a3u1$1@dont-email.me> <v0qkti$2m1nf$1@i2pn2.org>
 <v0r4a3$2hb7o$6@dont-email.me> <v0rsbr$2m1nf$6@i2pn2.org>
 <v0segm$2v4oq$1@dont-email.me> <v0t8o9$2p3ri$2@i2pn2.org>
 <v0tpjf$3881i$5@dont-email.me> <v0ulma$2qov4$1@i2pn2.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 18 May 2024 18:24:04 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="95afb1fc0a4871125108def5044e156a";
	logging-data="3019260"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+TG1TZmWWLtlBhbEki/F7j"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:t2B/tFJkZHVpQmAMrytOBHWb97E=
Content-Language: en-US
In-Reply-To: <v0ulma$2qov4$1@i2pn2.org>
Bytes: 6706

On 5/1/2024 7:10 PM, Richard Damon wrote:
> On 5/1/24 12:11 PM, olcott wrote:
>> On 5/1/2024 6:23 AM, Richard Damon wrote:

On 5/18/2024 8:13 AM, Richard Damon wrote:
 > (4) Message-id: <v0ulma$2qov4$1@i2pn2.org>

<snip so that lookup by message ID won't truncate>

> The first method has been discussed here by Flibble. While the final 
> answer he got to doesn't fit the requirements, the first part of the 
> method DOES show that it is possible for an H to simulate to past line 3.
> 
> THe basic idea is that if H(M,d) finds that its simulation of M(d) get 
> to a call to H(M,d) then rather that your idea of just saying it will 
> get stuck and declair the input invalid, since there ARE a number of 
> possible inputs that there is a "correct" answer that H can give to 
> match the behavior of the direct execution of M(d), what H does is fork 
> its simulation into two threads.
> 
> Thread 1 continues the simulation assuming that the call to H(M,d) will 
> return a 1, and if that simulation reaches a halting state, then 1 is 
> the answer, and thread 2 can be abandoned.
> 
> Thread 2 continues the simulation assuming that the call to H(M,d) will 
> return a 0, and if that simulation reaches a provable non-halting 
> pattern, then 0 is the answer, and thread 1 can be abandoned.
> 
> It may be the case that BOTH answer could be correct, in which case 
> depending on exactly how the forking works and how long it takes each to 
> get to the answer, either answer might be given, but then, both are 
> correct.
> 
> It may be the case that neither answer can be shown correct, if Thread 
> one can prove that it will be non-halting and Thread 2 halts, then the 
> decider has proven the machine to be "contrary" to it. But it might be 
> the case that it never can figure that out, and it just doesn't answer.
> 
> But, in all cases, it gets past the call to H(M,d), so your criteria, 
> that NO H can get there is not meet.
> 
> 
> The second method uses the fact that you have not restricted what H is 
> allowed to do, and thus H can remember that it is simulating, and if a 
> call to H shows that it is currently doing a simulation, just 
> immediately return 0. Thus, H can actually correct simulate the 
> instruction at the call to H, as they will execute just a few 
> instructions testing that condition and returning, and thus not run into 
> the problem you ran into where H just couldn't simulate itself because 
> it got bogged down.
> 
> In this case it is actually true that the direct execution of D(D) 
> differs from the correct simulation of the input by H, as H is no longer 
> a "Computation" per the rules of Computation Theory, but you have 
> admitted that you are abandoning those, so it doesn't matter (of course 
> that make trying to get your results to apply to something similar 
> harder, but that is why you need to try to come up with some actual 
> definitons.)
> 
> So, by the rules of Compuation Theory, your H is not correct, but by 
> your lack of rules, your conclusion that H can not simulate past the 
> call are incorrect, so you proof is also broken.
> 

The following only refers to every H/D pair matching the following 
template where 1 to ∞ steps of D are correctly simulated by H.

*Your words above diverge from this precise specification*
*Your words above diverge from this precise specification*
*Your words above diverge from this precise specification*

typedef int (*ptr)();  // ptr is pointer to int function
00 int H(ptr x, ptr y);
01 int D(ptr x)
02 {
03   int Halt_Status = H(x, x);
04   if (Halt_Status)
05     HERE: goto HERE;
06   return Halt_Status;
07 }
08
09 int main()
10 {
11   H(D,D);
12   return 0;
13 }

In the above case a simulator is an x86 emulator that correctly
emulates at least one of the x86 instructions of D in the order
specified by the x86 instructions of D.

This may include correctly emulating the x86 instructions of H
in the order specified by the x86 instructions of H thus calling
H(D,D) in recursive simulation.

Execution Trace
Line 11: main() invokes H(D,D);

keeps repeating (unless aborted)
Line 01
Line 02
Line 03: simulated D(D) invokes simulated H(D,D) that simulates D(D)

Simulation invariant:
D correctly simulated by H cannot possibly reach past its own line 03.

The key thing to note is that no D simulated correctly by any H of every
H/D pair specified by the above template ever reaches its own line 06 
and halts.

The above is self-evidently true to anyone having sufficient
knowledge of the semantics of the C programming language.


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