It is an easily verified fact, as you love to say, that if DD calls HHH
(as it does) and HHH calls DD (as, through simulation, it effectively
does) that HHH(DD) can never halt naturally, so it will have to abort
the recursion and report its result as 0 - didn't halt.
On 19/08/2025 03:00, olcott wrote:
*Context for what Richard Heathfield agreed to*
Close but no banana.
<Input to LLM systems>
Simulating Termination Analyzer HHH correctly simulates its input
I certainly didn't agree to that.
until:
(a) Detects a non-terminating behavior pattern:
abort simulation and return 0.
I am prepared to accept that this is how you cope with runaway
recursion, yes.
(b) Simulated input reaches its simulated "return" statement:
return 1.
This doesn't happen as far as I'm aware.
typedef int (*ptr)();
int HHH(ptr P);
int DD()
{
int Halt_Status = HHH(DD);
You know that'll be 0, so memoise it:
Halt_Status = 0;
if (Halt_Status)
if(0)... so no...
HERE: goto HERE;
After skipping that, we get to:
return Halt_Status;
return 0;
}
What value should HHH(DD) correctly return?
You've already said that it correctly returns 0 - which correctly
describes HHH's action (aborted and concluded non-halting).
It is an easily verified fact, as you love to say,
that if DD calls HHH (as it does) and HHH calls DD
(as, through simulation, it effectively does) that
HHH(DD) can never halt naturally, so it will have
to abort the recursion and report its result as 0
- didn't halt.
Sysop: | DaiTengu |
---|---|
Location: | Appleton, WI |
Users: | 1,064 |
Nodes: | 10 (0 / 10) |
Uptime: | 159:14:27 |
Calls: | 13,691 |
Calls today: | 1 |
Files: | 186,936 |
D/L today: |
7,069 files (2,119M bytes) |
Messages: | 2,411,313 |