Sujet : Re: Analysis of Flibble’s Latest: Detecting vs. Simulating Infinite Recursion ZFC
De : rjh (at) *nospam* cpax.org.uk (Richard Heathfield)
Groupes : comp.theoryDate : 27. May 2025, 10:24:11
Autres entêtes
Organisation : Fix this later
Message-ID : <10140br$2hkq1$1@dont-email.me>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
User-Agent : Mozilla Thunderbird
On 27/05/2025 09:48, Fred. Zwarts wrote:
Op 26.mei.2025 om 22:28 schreef Richard Heathfield:
On 26/05/2025 20:35, Fred. Zwarts wrote:
Now DDD is not the caller of HHH
>
Yes, it is.
>
void DDD()
{
HHH(DDD);
return;
}
>
Only if we confuse levels of simulation.
Only if we confuse terminology.
Noun
caller (plural callers)
(telephony) The person who makes a telephone call.
A visitor.
a gentleman caller
(bingo) The person who stands at the front of the hall and announces the numbers.
(programming) A function that calls another (the callee).
DDD calls HHH. Therefore DDD is the caller of HHH.
int main () {
HHH(DDD);
}
Here main is the caller of HHH.
Yes.
void DDD()
{
HHH(DDD);
return;
}
Here DDD is the caller of HHH.
HHH has (at least) two callers.
In the first level of simulation DDD is simulated and calls HHH, which could cause a second level of simulation, where DDD is the caller, but that does not happen, because the first HHH aborts the simulation at that point. At the first (and only level), DDD is not the caller of HHH. DDD is only the input to HHH, not the caller. HHH should decide about its input, not about its caller.
DDD is, in fact, a pointer to memory. This memory includes the code of DDD and all other code used by DDD, including the HHH that aborts. So, the input specifies a halting program. But HHH does not see that part of the specification, but aborts and makes the false assumption about itself that it does not halt. This bug in HHH does not change the verifiable fact that the input (not the caller) specifies a halting program.
Understood, but you are only describing half the picture.
We can observe DDD's behaviour directly by calling it directly:
int main(void)
{
DDD();
}
Clearly this cannot change anything, because for simulation to be a valid technique simulation must give the same result as direct execution, and therefore direct execution must give the same result as simulation.
Here, it is even more abundantly clear than ever that DDD is the caller of HHH. Since (according to Olcott) HHH cannot report on its caller, it cannot report on DDD.
-- Richard HeathfieldEmail: rjh at cpax dot org dot uk"Usenet is a strange place" - dmr 29 July 1999Sig line 4 vacant - apply within