Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connectionsPath: ...!feed.opticnetworks.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: olcott
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:
References:
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:
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