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: Can D correctly simulated by H reach its own line 06 and halt? Date: Tue, 21 May 2024 20:43:26 -0500 Organization: A noiseless patient Spider Lines: 59 Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Wed, 22 May 2024 03:43:27 +0200 (CEST) Injection-Info: dont-email.me; posting-host="9557ecc38a2c6e613b1947df9dd7fc56"; logging-data="908699"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/xSq5qdxx7LLrRmlIFNgWJ" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:gzoYAgmf0UebbQyCOy+8Z9CbSJo= Content-Language: en-US In-Reply-To: Bytes: 3367 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 essentially trivial to see that D correctly simulated by H cannot possibly reach its own final state at line 06 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. -- Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius hits a target no one else can see." Arthur Schopenhauer