On 2025-11-05, olcott <polcott333@gmail.com> wrote:
On 11/4/2025 7:20 PM, Mike Terry wrote:
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.
news://news.eternal-september.org/20251103195844.661@kylheku.com
On 11/3/2025 10:28 PM, Kaz Kylheku wrote:
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:
*This is the part that Kaz does not understand*
i == 0 reaches if (interp_step(s))
i == 1 reaches if (interp_step(s))
i == 2 reaches if (interp_step(s))
i == 3 NEVER reaches if (interp_step(s))
The whole point is that D simulated by H
cannot possbly reach its own simulated
"return" statement no matter what H does.
Yes; this doesn't happen while H is running.
| Sysop: | DaiTengu |
|---|---|
| Location: | Appleton, WI |
| Users: | 1,076 |
| Nodes: | 10 (1 / 9) |
| Uptime: | 28:59:19 |
| Calls: | 13,804 |
| Calls today: | 1 |
| Files: | 186,990 |
| D/L today: |
300 files (66,892K bytes) |
| Messages: | 2,441,602 |