Deutsch English Français Italiano |
<v5eup8$1lar1$2@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!feed.opticnetworks.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: olcott <polcott333@gmail.com> Newsgroups: comp.theory,sci.logic Subject: Re: 195 page execution trace of DDD correctly simulated by HH0 Date: Tue, 25 Jun 2024 12:29:12 -0500 Organization: A noiseless patient Spider Lines: 132 Message-ID: <v5eup8$1lar1$2@dont-email.me> References: <v4vrfg$2793f$1@dont-email.me> <v58m12$8mmo$1@dont-email.me> <v59797$brmn$1@dont-email.me> <v5b7nv$qvrb$1@dont-email.me> <v5btf3$v0vb$4@dont-email.me> <v5chru$10816$1@i2pn2.org> <v5cn01$149dc$1@dont-email.me> <v5ebvr$1hs89$1@dont-email.me> <v5efod$1ikpr$1@dont-email.me> <v5ejau$1iq57$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Tue, 25 Jun 2024 19:29:13 +0200 (CEST) Injection-Info: dont-email.me; posting-host="422dd2162c45ab1a09b084523bb5ca66"; logging-data="1747809"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/gBRkDTvA3R+dOhec4QW62" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:FIC+aBvB8en0RjpOmHIdus1Z9A4= Content-Language: en-US In-Reply-To: <v5ejau$1iq57$1@dont-email.me> Bytes: 6208 On 6/25/2024 9:13 AM, Fred. Zwarts wrote: > Op 25.jun.2024 om 15:12 schreef olcott: >> On 6/25/2024 7:08 AM, Fred. Zwarts wrote: >>> Op 24.jun.2024 om 23:04 schreef olcott: >>>> On 6/24/2024 2:36 PM, joes wrote: >>>>> Am Mon, 24 Jun 2024 08:48:19 -0500 schrieb olcott: >>>>>> On 6/24/2024 2:37 AM, Mikko wrote: >>>>>>> On 2024-06-23 13:17:27 +0000, olcott said: >>>>>>>> On 6/23/2024 3:22 AM, Mikko wrote: >>>>>>>>> That code is not from the mentined trace file. In that file _DDD() >>>>>>>>> is at the addresses 2093..20a4. According to the trace no >>>>>>>>> instruction >>>>>>>>> at the address is executed (because that address points to the >>>>>>>>> last >>>>>>>>> byte of a three byte instruction. >>>>>>>> >>>>>>>> In order to make my examples I must edit the code and this >>>>>>>> changes the >>>>>>>> addresses of some functions. >>>>>>> >>>>>>> Why do you need to make an example when you already have one in the >>>>>>> file mentioned in the subject line? >>>>>>> >>>>>> I had to make a few more examples such as HH1(DD,DD) >>>>> AFACT HH1 is the same as HH0, right? What happens when HH1 tries to >>>>> simulate a function DD1 that only calls HH1? >>>>> >>>> >>>> typedef uint32_t u32; >>>> u32 H(u32 P, u32 I); >>>> >>>> int P(u32 x) >>>> { >>>> int Halt_Status = H(x, x); >>>> if (Halt_Status) >>>> HERE: goto HERE; >>>> return Halt_Status; >>>> } >>>> >>>> int main() >>>> { >>>> H(P,P); >>>> } >>>> >>>> I am going to have to go through my code and standardize my names. >>>> H(P,P) was the original name. Then I had to make a one parameter >>>> version, a version that is identical to H, except P does not call >>>> it and then versions using different algorithms. People have never >>>> been able to understand the different algorithm. >>>> >>>> typedef void (*ptr)(); >>>> typedef int (*ptr2)(); >>>> int HH(ptr2 P, ptr2 I); // used with int D(ptr2 P) that calls HH >>>> int HH1(ptr2 P, ptr2 I); // used with int D(ptr2 P) that calls HH >>>> int HHH(ptr P); // used with void DDD() that calls HHH >>>> int HHH1(ptr P); // used with void DDD() that calls HHH >>>> >>>> *The different algorithm version has been deprecated* >>>> int H(ptr2 , ptr2 I); // used with int D(ptr2 P) that calls H >>>> int H1(ptr2 P, ptr2 I); // used with int D(ptr2 P) that calls H >>>> >>>> *It is much easier for people to see the infinite recursion* >>>> *behavior pattern when they see it actually cycle through the* >>>> *same instructions twice* >>> >>> Twice is not equal to infinitely. When will you see that? >>> It is strange that you call that an infinite recursion, when H aborts >>> after two cycles and the simulated H cannot reach its own abort >>> operation, because it is aborted when it had only one more cycle to go. >>> None of the aborted simulations would cycle more than twice, so >>> infinite recursion is not seen for an H that aborts the simulation of >>> itself. >> >> typedef void (*ptr)(); >> int H0(ptr P); >> >> void DDD() >> { >> H0(DDD); >> } >> >> int main() >> { >> H0(DDD); >> } >> >> _DDD() >> [00002172] 55 push ebp ; housekeeping >> [00002173] 8bec mov ebp,esp ; housekeeping >> [00002175] 6872210000 push 00002172 ; push DDD >> [0000217a] e853f4ffff call 000015d2 ; call H0(DDD) >> [0000217f] 83c404 add esp,+04 >> [00002182] 5d pop ebp >> [00002183] c3 ret >> Size in bytes:(0018) [00002183] >> >> The call from DDD to H0(DDD) when DDD is correctly emulated >> by H0 cannot possibly return. > > Contradictio in terminis. The fact that the simulated H0 does not return > shows that the simulation is incorrect. void Infinite_Recursion() { Infinite_Recursion(); } Ah so you simply *DON'T BELIEVE IN* infinite recursion where a correct simulating termination analyzer would be required to abort its simulation to correctly report non-terminating behavior. That seems quite dumb of you. > The simulated H0 does not return, because it is aborted one cycle too > soon. One cycle later it would return. Complete lack of sufficient software engineering skill. Unless the outermost directly executed H0 aborts its simulation after a fixed number of recursive invocations NONE OF THEM DO. This did baffle me for three days 3.5 years ago until I took the time to THINK IT ALL THE WAY THROUGH. > This is what the simulation by H1 > and the direct execution shows. > You could as well claim that the correct addition 1+1=3 shows that 1+1>2. > -- Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius hits a target no one else can see." Arthur Schopenhauer