Path: ...!weretis.net!feeder9.news.weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: olcott Newsgroups: comp.theory,sci.logic Subject: Re: Can you see that D correctly simulated by H remains stuck in recursive simulation? Date: Sun, 26 May 2024 08:38:34 -0500 Organization: A noiseless patient Spider Lines: 108 Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Sun, 26 May 2024 15:38:34 +0200 (CEST) Injection-Info: dont-email.me; posting-host="b67ec24a85de95a55e6b4d0cc81926c3"; logging-data="3601821"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/J2zUAPUr95oPSZyEtfvXU" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:DbZDnSH1sjAoNfIPiQjeKISfhIU= In-Reply-To: Content-Language: en-US Bytes: 5825 On 5/26/2024 5:47 AM, Fred. Zwarts wrote: > Op 25.mei.2024 om 19:56 schreef olcott: >> On 5/25/2024 7:52 AM, Richard Damon wrote: >>> On 5/25/24 12:28 AM, olcott wrote: >> >> >> >>>>> That you H, by just needing to be a "Pure Funtion" is not >>>>> necessarily the computatinal eqivalent of a Turing Machine. >>>>> >>>> >>>> Totally moot for the subject line. >>> >>> Nope, ESSENTINTIAL. I am not asking you to change your definition, >>> just accept its consequences. >>> >> >> typedef int (*ptr)();  // ptr is pointer to int function in C >> 00       int H(ptr p, ptr i); >> 01       int D(ptr p) >> 02       { >> 03         int Halt_Status = H(p, p); >> 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       } >> >> The above template refers to an infinite set of H/D pairs where D is >> correctly simulated by pure function H. This was done because many >> reviewers used the shell game ploy to endlessly switch which H/D pair >> was being referred to. >> >> *Correct Simulation Defined* >>     This is provided because many reviewers had a different notion of >>     correct simulation that diverges from this notion. >> >>     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); H(D,D) simulates lines 01, 02, and 03 of >> D. This invokes H(D,D) again to repeat the process in endless recursive >> simulation. >> >> *This is only talking about the H/D c function pairs* >> *This is only talking about the H/D c function pairs* >> *This is only talking about the H/D c function pairs* >> *This is only talking about the H/D c function pairs* >> *This is only talking about the H/D c function pairs* >> >> *This is only talking about the H/D c function pairs* >> *This is only talking about the H/D c function pairs* >> *This is only talking about the H/D c function pairs* >> *This is only talking about the H/D c function pairs* >> *This is only talking about the H/D c function pairs* >> > > The claim is that the simulation of D does not halt, because it call to > H does not halt. The simulation does not even reach line 04, so the > simulation does not even see that D contradicts H. The claim, therefore > does not change if lines 04 and 05 are removed. What remains is that D > is a parameter duplicator, so that H can simulate itself. The result is > that each H in the infinite set of H finds that H is not halting. A > clear indication that a simulating decider is not a good idea. Your transformation would have been acceptable if you retained the fact that H is a pure function that always halts and returns some value. In retrospect I should not have assumed that people here knew what a pure function is. In computer programming, a pure function is a function that has the following properties: (1) the function return values are identical for identical arguments (no variation with local static variables, non-local variables, mutable reference arguments or input streams), and (2) the function has no side effects (no mutation of local static variables, non-local variables, mutable reference arguments or input/output streams). https://en.wikipedia.org/wiki/Pure_function Because we can see that D correctly simulated by pure function H cannot possibly reach its final state at line 06 and halt even when an infinite number of steps are simulated we can know that D specifies non-halting behavior. That H is a pure function means that H eventually halts and returns some value. We can say H returns the meaningless value of 56. *Thanks for your review* -- Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius hits a target no one else can see." Arthur Schopenhauer