I don't really see that PO has declined recently - It seems to me he's
been the way he is for as long as I recall. I would say he's become markedly ruder of late, though! Maybe that's all related to his LLMs pandering to his delusions and giving him a renewed confidence.
Mike.
How about this minimal viable H:
#include <interpret.h> // C interpreter's own API
bool H(fptr P)
{
interp *s = interp_init(P);
for (int i = 0; i < 3; i++) {
if (interp_step(s))
return true;
}
return false;
}
H initializes an interpreter for its argument P.
Then it applies a very simple abort logic: it
steps the interpreter state three times. If
during those three steps, P terminates, it returns
true. Otherwise it assumes P is nonterminating and
returns false.
(Pretend that more complicated abort criteria are there.)
The interpreter API consists of primitives built
into the system, so it isn't traced.
So then we have D:
void D(void)
{
if (H(D)) { for (;;); }
return;
}
Let's trace H(D). We indicate the simulation levels from 0,
step numbers from 1 within each level, with a bit of indentation
to tell apart the levels:
| Sysop: | DaiTengu |
|---|---|
| Location: | Appleton, WI |
| Users: | 1,076 |
| Nodes: | 10 (1 / 9) |
| Uptime: | 28:58:14 |
| Calls: | 13,804 |
| Calls today: | 1 |
| Files: | 186,990 |
| D/L today: |
300 files (66,892K bytes) |
| Messages: | 2,441,602 |