Liste des Groupes | Revenir à c theory |
On 5/12/2025 3:53 AM, Mikko wrote:Which is not a program, and cant be emulated without include the HHH that it calls, and thus you can't compare the results of one HHH emulating its DD with another.On 2025-05-11 13:21:31 +0000, Mr Flibble said:That ignores a key fact
>Flibble’s Leap: Why Behavioral Divergence Implies a Type Distinction in>
the Halting Problem
===========================================================================================
>
Summary
-------
Flibble argues that the Halting Problem's undecidability proof is built on
a category (type) error: it assumes a program and its own representation
(as a finite string) are interchangeable. This assumption fails under
simulating deciders, revealing a type distinction through behavioral
divergence. As such, all deciders must respect this boundary, and
diagonalization becomes ill-formed. This reframing dissolves the paradox
by making the Halting Problem itself an ill-posed question.
>
1. Operational Evidence of Type Distinction
-------------------------------------------
- When a program (e.g., `DD()`) is passed to a simulating halt decider
(`HHH`), it leads to infinite recursion.
- This behavior differs from direct execution (e.g., a crash due to a
stack overflow).
- This divergence shows that the program (as code) and its representation
(as data) are operationally distinct.
- Therefore, treating them as the same "type" (as Turing's proof does)
leads to inconsistency.
>
2. Generalization to All Deciders
---------------------------------
- If simulation reveals this type mismatch, then no valid decider can rely
on conflating program and representation.
- Diagonalization (e.g., defining D(x) = if H(x,x) then loop else halt)
necessarily crosses the type boundary.
- The contradiction in the Halting Problem arises from this type error,
not from inherent undecidability.
- Hence, the Halting Problem is ill-defined for self-referential input.
>
3. Comparisons to Other Formal Systems
--------------------------------------
- In type-theoretic systems (like Coq or Agda), such self-reference is
disallowed:
- Programs must be well-typed.
- Self-referential constructs like `H(x, x)` are unrepresentable if they
would lead to paradox.
- In category theory, morphisms must respect domain/codomain boundaries:
- Reflexive constructions require stratification to avoid logical
inconsistency.
>
4. Conclusion
-------------
- The Halting Problem depends on self-reference and diagonalization.
- If these constructs are blocked due to type/category errors, the proof
breaks down.
- Thus, the Halting Problem isn’t undecidable—it’s malformed when it
crosses type boundaries.
- This is not a refutation of Turing, but a reformulation of the problem
under more disciplined typing rules.
>
This model mirrors how Russell’s Paradox was avoided in modern logic: not
by solving the contradiction, but by redefining the terms that made the
contradiction possible.
The halting problem has very simple types: the input is two strings
and the output is a bit. The same input can be given to a UTM, so
the input type of the halting problem is the input type of a UTM.
There is no divergence of behaviour: a UTM has only one behaviour for
each input and no other UTM needs be considered.
>
_DDD()
[00002172] 55 push ebp ; housekeeping
[00002173] 8bec mov ebp,esp ; housekeeping
[00002175] 6872210000 push 00002172 ; push DDD
[0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
[0000217f] 83c404 add esp,+04
[00002182] 5d pop ebp
[00002183] c3 ret
Size in bytes:(0018) [00002183]
One or more instructions of the above functionWhich are all just partially emulating different inputs, for which the correct emulation of which will halt, as the HHH they call witl return 0 after some finite time.
are correctly emulated by different instances of
pure x86 emulators at machine address 000015d2.
None of these correctly emulated DDD instances halts.
It is stupidly incorrect to simply assume that theWHere did you prove it makes it have any behavior other than what it has?
pathological relationship between HHH and DDD does
not change the behavior of DDD when it is proven
that is does change the behavior.
HHH1(DDD) has no pathological relationship thus HHH1So? That just means it was able to do the task.
never emulates itself emulating DDD.
HHH(DDD) has a pathological relationship thus HHHSo? That just means that since your HHH aborts, it never did a correct emulation and get the wrong answer as the correct emulation will halt, since it will go past that point, and see that HHH aborts its emulation (since that IS what HHH did) and then return 0 to DD which then halts.
emulates itself emulating DDD.
It is pretty stupid to think that above twoBut the behavior of the input WAS the same, the fact that HHH gave up before it saw it is just irrelvernt.
behaviors are identical.
Les messages affichés proviennent d'usenet.