On 2025-08-08, olcott <
[email protected]> wrote:
Would DD correctly simulated by HHH reach its own simulated
"return" statement final halt state?
Listen, in your x86 simulator you had fatal flaws. Your code relied on
the assumption that when the halting test case calls the simulator in
order to obtaint he halting decision, it is calling the original one at
the same address as the one that is doing the outermost deciding.
This is not a requirement in the halting proof. The test case has a
/copy/ of the halting decider.
In your system, the test case can defeat your strategy easily like this: instead of just calling the halting decider (where your simulator then
detects that the decider is running by looking at the instruction
pointer), the test case can make a copy of the function and relocate it
to another address, where it won't be recognized.
You wrongly believe that a halting decider can detect the situation that
the test case is using that same halting decider (and then behaving
opposite).
But this involves an undecidable problem. What problem is that? Namely, determining whether the test case in fact contains exactly the same
decider as the one being applid to it.
This requires calculating the equivalence of two programs.
Calculating the equivalence of two programs is an undecidable problem in computer science, like universal halting. (It is easily shown
undecidable by a reduction to an instance of the halting problem.)
No, you cannot just assume that everything is in one x86 address space,
and that the test case plays right into your hands by executing a JSR to
the address of the halting decider you have provided. Why would
it do that?
Assume that the attacker has a copy of your halting decider and /embeds/
it into the rebellious test case. The attacker doesn't have to embed a
literal image of that halting decider as you have provided it. It can be translated to another language; for instance, the attacker can translate
your decider into a proprietary byte code, and just include it as an
array of byte code instructions executed by a VM they have written. The attacker can keep your x86 code, but randomly permute it so that it
doesn't compare the same as a bit string.
There is simply no way to reliably make the decision "aha! the test case
has invoked a halting decider precisely equivalent to this one, and
behaved in a contradictory manner!"
The "halting decider precisely equivalent to this one" can look like
anything! It can be written in any language, any style, disguised
by endless permutations.
--
TXR Programming Language:
http://nongnu.org/txr
Cygnal: Cygwin Native Application Library:
http://kylheku.com/cygnal
Mastodon: @
[email protected]
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)