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: Wed, 22 May 2024 08:53:41 -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: 8bit Injection-Date: Wed, 22 May 2024 15:53:41 +0200 (CEST) Injection-Info: dont-email.me; posting-host="9557ecc38a2c6e613b1947df9dd7fc56"; logging-data="1272613"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+lE2Yx4EIHe6bvseMnlLkz" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:HiP5C7awdkTtakBkcv8rKHj/RHw= In-Reply-To: Content-Language: en-US Bytes: 3450 On 5/22/2024 6:50 AM, Bonita Montero wrote: > Am 22.05.2024 um 13:01 schrieb Sam: >> olcott writes: >> >>>> 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 >> >> You're stuck in an infinite loop. Try pressing CTRL-ALT-DEL. This will >> break you out of your infinite loop. > > I think he is stuck in a mental infinite loop. > >> >> Then, it's time to figure out how to fix your infinite loop. You need >> to attach a debugger. I saw Jerry do this once to Tom, by sticking >> Tom's tail into a socket. You don't have a tail. But you have hands. >> With plenty of fingers. You only need two (don't worry about the >> ground plug). Your fingers are probably too thick to fit. You need a >> pair of forks. 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 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