Path: ...!feeds.phibee-telecom.net!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 21:22:27 -0500 Organization: A noiseless patient Spider Lines: 61 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 04:22:28 +0200 (CEST) Injection-Info: dont-email.me; posting-host="9557ecc38a2c6e613b1947df9dd7fc56"; logging-data="1042899"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/N1SLz7+RCe3U1Gmnq2+6m" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:8ziWPtRTyK1kkMCmMQAYiRM7xZU= In-Reply-To: Content-Language: en-US Bytes: 3505 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. -- Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius hits a target no one else can see." Arthur Schopenhauer