Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: olcott Newsgroups: comp.lang.c++,comp.lang.c Subject: Re: D correctly simulated by H never halts Date: Wed, 29 May 2024 14:16:27 -0500 Organization: A noiseless patient Spider Lines: 82 Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Wed, 29 May 2024 21:16:29 +0200 (CEST) Injection-Info: dont-email.me; posting-host="b7a5feb561e035e50c2e5bc5a99a467f"; logging-data="1348254"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+013UxL/dpCMeqpvTEJE+k" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:GYDmagiLh8gRCDUYUEPMMWQSTKE= Content-Language: en-US In-Reply-To: Bytes: 4619 On 5/29/2024 1:51 PM, Chris M. Thomasson wrote: > On 5/29/2024 6:34 AM, olcott wrote: >> On 5/28/2024 11:54 PM, Chris M. Thomasson wrote: >>> On 5/28/2024 8:29 PM, olcott wrote: >>>> On 5/28/2024 10:05 PM, Chris M. Thomasson wrote: >>> [...] >>>>> too vague? Oh that is rich. >>>> >>>> I had to start specifying the x86 language because dozens of reviewers >>>> believed that D correctly simulated by H was supposed to report on the >>>> behavior of non-input: int main() { D(D); } >>>> >>>> It was only that I could show that this would require simulating >>>> the x86 instructions of D incorrectly or in the wrong order that >>>> I could prove that they were wrong. Their mistake was my primary >>>> rebuttal for two years. >>>> >>> >>> How do you simulate cmpxchg8b? >> >> That is not an x86 instruction it is an x64 instruction >> https://phoenixnap.com/kb/x64-vs-x86 > > You are wrong. cmpxchg8b is an x86 instruction. A 64-bit DWCAS on a > 32-bit system. > OK great. I am wrong about a detail totally unrelated to my work. The details related to my work I am correct and checked every which way many hundreds of times. The only detail relevant to this group is STEP ONE of my four step proof. 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 either pure simulator H or 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. H correctly simulates 1 to ∞ steps of D with either pure function H or pure simulator H. In none of these cases does the correctly simulated D ever reach its own simulated final state and halt. *In actual finite memory C the H/D pair would eventually crash* *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 1 to N of the x86 instructions of D in the order specified by the x86 instructions of D. This may include M recursive emulations of H emulating itself emulating D. *Fully operational code proves recursive emulation* When we see that D correctly simulated by pure simulator H would remain stuck in infinite recursive simulation then we also know that less than an infinite number of steps is not enough steps for D correctly simulated by pure function H to reach its own simulated final state at line 06 and halt. -- Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius hits a target no one else can see." Arthur Schopenhauer