Re: Simplified proof that DDD correctly simulated by HHH does not halt

Liste des GroupesRevenir à s logic 
Sujet : Re: Simplified proof that DDD correctly simulated by HHH does not halt
De : noreply (at) *nospam* example.com (joes)
Groupes : comp.theory 
Date : 09. Jun 2024, 19:59:51
Autres entêtes
Organisation : i2pn2 (i2pn.org)
Message-ID : <v44qin$3g17f$5@i2pn2.org>
References : 1 2
User-Agent : Pan/0.145 (Duplicitous mercenary valetism; d7e168a git.gnome.org/pan2)
Am Sun, 09 Jun 2024 11:07:19 -0500 schrieb olcott:
typedef void (*ptr)(); // pointer to void function
01   void HHH(ptr P, ptr I)
02   {
03     P(I);
04     return;
05   }
06 07   void DDD(int (*x)())
08   {
09     HHH(x, x);
10     return;
11   }
12 13   int main()
14   {
15     HHH(DDD,DDD);
16   }
17

In the above Neither DDD nor HHH ever reach their own return statement
thus never halt.
Most of my reviewers incorrectly believe that when HH(DD,DD) aborts its
simulated input that this simulated input halts.
If HH aborts the simulation of DD(DD), the call to itself also does, and
returns, making the whole chain terminate. Therefore the abortion was
premature.

When HHH is a simulating halt decider just like HH then DDD correctly
simulated by HHH cannot possibly terminate normally
HHH must be the same as HH. There is no distinction by simulation level.
That's the whole point of the argument.

When HHH is a simulating halt decider then HHH sees that DDD
cannot possibly reach its return statement, AKA
    simulating halt decider HHH simulates its input DDD
    until HHH determines that DDD would never
    stop running unless aborted
and aborts it.

--
joes

Date Sujet#  Auteur
21 Sep 24 o 

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal