Path: ...!news.mixmin.net!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: Can D correctly simulated by H reach its own line 06 and halt? Date: Tue, 21 May 2024 23:03:13 -0500 Organization: A noiseless patient Spider Lines: 63 Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Wed, 22 May 2024 06:03:13 +0200 (CEST) Injection-Info: dont-email.me; posting-host="9557ecc38a2c6e613b1947df9dd7fc56"; logging-data="1075526"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1835w7qqYegWdoaPlEz0wWC" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:giFsE7oNHZZl7ke3UuSzGMgVxgM= Content-Language: en-US In-Reply-To: Bytes: 3697 On 5/21/2024 9:22 PM, olcott wrote: > On 5/21/2024 8:31 PM, Sam wrote: >> olcott writes: >> >>> I learned C when K & R was the standard. >>> I met Bjarne Stroustrup are our local university when he >>> was promoting his new language. I have been a professional >>> programmer since 1984, and a professional C++ software >>> engineer since Y2K. >> >> And I have been Lord High Posterchild Of The Known Universe, since >> birth. So what? >> >>> >>> I know that my C function template will not execute. >> >> Not only that, there is no such thing as "C function template" in the >> first place. Templates are a C++ thing. There are not templates in C. >> >>> I can't provide the details of this because this template refers to >>> an infinite set of H/D pairs where H is only required to correctly >>> simulate N steps of D using an x86 emulator. H must be a pure function. >> >> Unfortunately, all our psychics are out to lunch and there's noone in >> the office who knows how to operate the magical mind ray-beam machine >> that's needed in order to extract all the relevant details from your >> head. You'll need to patiently wait until the lunch break is over. >> >> We apologize for the inconvenience. >> > > 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       } > > It is trivial to see that for every H/D pair of the infinite > set of H/D pairs that match the above template that > > D correctly correctly simulated by H cannot possibly reach > its own final state at line 06 and halt because D correctly > simulated by H remains stuck in recursive simulation. > > This provides the basis for simulating termination analyzer H to > correctly determine that the halting problem's counter-example > input D cannot possibly halt. > test -- Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius hits a target no one else can see." Arthur Schopenhauer