• Refutation of Linz's Halting Problem Proof

    From Mr Flibble@21:1/5 to All on Sun Apr 20 22:15:36 2025
    ================================================================================
    Refutation of Linz's Halting Problem Proof
    Based on Type Error Assumption ================================================================================
    Date: April 20, 2025

    This document refutes Peter Linz's proof of the undecidability of the
    halting
    problem, as presented in "An Introduction to Formal Languages and
    Automata," under
    the assumption that self-referential input conflating deciders with
    programs
    constitutes a category (type) error. By enforcing a type system that
    separates
    deciders from programs, the diagonalization argument central to Linz's
    proof is
    invalidated, challenging the claim of universal undecidability.

    --------------------------------------------------------------------------------
    1. Background: Linz's Proof --------------------------------------------------------------------------------
    Linz demonstrates the halting problem's undecidability using a
    diagonalization
    argument. He assumes a hypothetical halting oracle H(P, I), which decides whether
    program P halts on input I. A program D is constructed such that:
    - D uses H to check if D(D) halts.
    - If H(D, D) says D(D) halts, D loops; otherwise, it halts.
    This creates a contradiction: D(D) halts if and only if it does not,
    implying no
    such H exists. The proof relies on self-reference, where D is both the
    program and
    input to H.

    --------------------------------------------------------------------------------
    2. Assumption: Self-Reference as a Type Error --------------------------------------------------------------------------------
    The refutation assumes that self-referential input, where a decider (e.g.,
    H) is
    conflated with the program being decided (e.g., D), is a category error in
    a typed
    computational model. We define:
    - Type Program: The type of executable programs (e.g., Turing machines).
    - Type Decider: The type of decision procedures (e.g., oracles deciding
    properties of programs).
    - Type Input: The type of inputs to programs, which may include encoded programs
    but excludes deciders.
    In this system, the halting oracle has signature H: Program x Input ->
    {halt, loop}.
    Self-referential cases, where P = H or I encodes H, are ill-typed because
    H is of
    type Decider, not Program.

    --------------------------------------------------------------------------------
    3. Refutation of Linz's Proof --------------------------------------------------------------------------------
    The following arguments demonstrate that Linz's proof fails under the type error
    assumption:

    3.1 Type Restriction Invalidates Self-Reference ------------------------------------------------
    Constructing D such that D(D) queries H(D, D) commits a type error. Since
    H is of
    type Decider, it cannot be passed as a Program to itself, nor can D
    (derived from H)
    be a valid input to H. The type system enforces that inputs to H are of
    type Input,
    excluding Decider or programs embedding H. Thus, H(D, D) is undefined, and
    D's
    construction is invalid.

    3.2 Collapse of Diagonalization Argument ------------------------------------------------
    Linz's proof depends on H being applicable to all pairs (P, I), including
    (D, D).
    By disallowing self-referential inputs, the diagonalization step—where
    D(D) halts
    if and only if it does not—cannot be derived. Without this contradiction,
    the proof
    fails to show that H cannot exist.

    3.3 Decidability in a Typed Model ------------------------------------------------
    In a typed system, a halting oracle H could decide halting for well-typed inputs
    (where P ≠ H and I does not encode H). Linz's proof assumes a type-free model, but
    in a typed model, the halting problem may be decidable for restricted
    cases,
    undermining the claim of universal undecidability.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Mr Flibble on Sun Apr 20 19:35:23 2025
    On 4/20/25 6:15 PM, Mr Flibble wrote:
    ================================================================================
    Refutation of Linz's Halting Problem Proof
    Based on Type Error Assumption ================================================================================
    Date: April 20, 2025

    This document refutes Peter Linz's proof of the undecidability of the
    halting
    problem, as presented in "An Introduction to Formal Languages and
    Automata," under
    the assumption that self-referential input conflating deciders with
    programs
    constitutes a category (type) error. By enforcing a type system that separates
    deciders from programs, the diagonalization argument central to Linz's
    proof is
    invalidated, challenging the claim of universal undecidability.

    --------------------------------------------------------------------------------
    1. Background: Linz's Proof --------------------------------------------------------------------------------
    Linz demonstrates the halting problem's undecidability using a diagonalization

    This is not a "diagonalizeation" argument. There is no need to order the possible deciders into a list.

    argument. He assumes a hypothetical halting oracle H(P, I), which decides whether
    program P halts on input I. A program D is constructed such that:
    - D uses H to check if D(D) halts.
    - If H(D, D) says D(D) halts, D loops; otherwise, it halts.
    This creates a contradiction: D(D) halts if and only if it does not,
    implying no
    such H exists. The proof relies on self-reference, where D is both the program and
    input to H.

    The proof does NOT use "self-referece", as nothing needs to "refer" to
    itself, and in fact, "reference" is a concept foreign to the domain of
    Turing Machines.


    --------------------------------------------------------------------------------
    2. Assumption: Self-Reference as a Type Error --------------------------------------------------------------------------------
    The refutation assumes that self-referential input, where a decider (e.g.,
    H) is
    conflated with the program being decided (e.g., D), is a category error in
    a typed
    computational model. We define:
    - Type Program: The type of executable programs (e.g., Turing machines).
    - Type Decider: The type of decision procedures (e.g., oracles deciding
    properties of programs).

    Or problem has no "oracles" in it. Just Programs.

    - Type Input: The type of inputs to programs, which may include encoded programs
    but excludes deciders.

    Why does it exclude deciders? Why can't we give the encoding of a
    decider to a decider to decide on?

    Isn't that a violation of the defintion of the decider to be able to
    decide on ALL inputs.

    In this system, the halting oracle has signature H: Program x Input ->
    {halt, loop}.
    Self-referential cases, where P = H or I encodes H, are ill-typed because
    H is of
    type Decider, not Program.

    But we can't have a halting oracle, as that isn't in the domain of valid answers.

    If you are starting by assuming H is an oracle machine, then you have
    left the domain of the problem.

    Yes, Inputs can't be based on Oracle Machies, but Oracle Machines are
    not answers to the problem, which must be an actual program.


    --------------------------------------------------------------------------------
    3. Refutation of Linz's Proof --------------------------------------------------------------------------------
    The following arguments demonstrate that Linz's proof fails under the type error
    assumption:

    3.1 Type Restriction Invalidates Self-Reference ------------------------------------------------
    Constructing D such that D(D) queries H(D, D) commits a type error. Since
    H is of
    type Decider, it cannot be passed as a Program to itself, nor can D
    (derived from H)
    be a valid input to H. The type system enforces that inputs to H are of
    type Input,
    excluding Decider or programs embedding H. Thus, H(D, D) is undefined, and D's
    construction is invalid.

    And this is just repeating your error, H is of type PROGRAM, as your
    type "decider" is outside the bounds of the theory, allowing non-program
    oracle machines.

    This just breaks the rest of your logic, and shows that you just don't understand what you are talking about.


    3.2 Collapse of Diagonalization Argument ------------------------------------------------
    Linz's proof depends on H being applicable to all pairs (P, I), including
    (D, D).
    By disallowing self-referential inputs, the diagonalization step—where
    D(D) halts
    if and only if it does not—cannot be derived. Without this contradiction, the proof
    fails to show that H cannot exist.

    3.3 Decidability in a Typed Model ------------------------------------------------
    In a typed system, a halting oracle H could decide halting for well-typed inputs
    (where P ≠ H and I does not encode H). Linz's proof assumes a type-free model, but
    in a typed model, the halting problem may be decidable for restricted
    cases,
    undermining the claim of universal undecidability.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mike Terry@21:1/5 to Mr Flibble on Mon Apr 21 03:43:09 2025
    On 20/04/2025 23:15, Mr Flibble wrote:
    ================================================================================
    Refutation of Linz's Halting Problem Proof
    Based on Type Error Assumption ================================================================================
    Date: April 20, 2025

    This document refutes Peter Linz's proof of the undecidability of the
    halting
    problem, as presented in "An Introduction to Formal Languages and
    Automata," under
    the assumption that self-referential input conflating deciders with
    programs
    constitutes a category (type) error. By enforcing a type system that separates
    deciders from programs, the diagonalization argument central to Linz's
    proof is
    invalidated, challenging the claim of universal undecidability.

    I think you genuinely mean well with this argument, but IMO you have completely missed what's going
    on with the Linz proof.

    Linz is proving a result specifically about *TMs*, as are other similar proofs by other authors.
    The reason TMs are chosen as the model of computing is:
    a) that it is the best model we know of for representing "algorithms" in the real world.
    b) the various other computing model candidates that have been proposed such as lambda-calculus
    and the likes are all easily seen to be equivalent to TMs
    c) we need to fix on some mathematical framework in order to make mathematical claims about
    e.g. the /non-existence/ of "algorithms" with certain properties. We all know
    (Turing/Church thesis) that we cannot prove
    mathematically that no other real-world computation method exists, but nobody knows of
    such and the general belief is that TMs adequately cover what we mean by "algorithm"
    [accepting that that is not something provable mathematically].

    If instead of fixing on a mathematically precise model of computing [such as TMs], we
    just talk about "effective computing" [which is more of a philosophical idea for "what
    can be calculated by some means or other"] then we could argue that certain things
    can be "effectively calculated", but we would have nowhere to start if we want to
    argue that something /wasn't/ effectively calculable - that needs a precise definition
    of calculation.

    So that is /why/ all these proofs focus on TMs or TM equivalents. We can talk mathematically about
    entities like oracles or infinite (non-terminating) computations, but we have no belief that such
    oracles exist in the real world in a way that can actually calulate anything - hence we ask whether
    *A TM* halt decider exists.

    Anyhow, regardless of /why/ we do this, THIS IS WHAT IS DONE IN LINZ AND SIMILAR HP PROOFS. And
    what we are all doing here in comp.theory in the PO threads. Of course, PO talks in terms of x86
    architectures and so on, but ultimately everything relates back to the TM computing model as in the
    Linz proof, which he claims to have refuted. Forget talk of oracles and the likes!

    If we acknowledge we are dealing with TMs only (as we are for HP proof), then a) an algorithm/program means a *TM*
    b) a decider is also a *TM* (obviously not all TMs are deciders)
    c) TMs and input tapes can be encoded as finite strings which can appear on a TM
    input tape (for suitably specified TMs supporting the required symbol set).
    We can fix the representation so that a TM supporting the right
    input/tape symbol set etc. can process /any/ (TM+input tape) correctly coded as
    a finite string.
    d) in particular ALL deciders, *being TMs* can be so encoded as a valid input tape
    for any putative halt decider TM - they are all just TMs.
    e) all TM + input tape combinations either halt or do not halt, so asking whether
    a halt decider exists that decides for a valid string representation of the
    (TM + input) becomes a well defined question mathematical question.
    f) There is no "category/type" error anywhere, SINCE ALL DECIDERS ARE ALSO TMS.

    IF we were considering mathematical oracles which report TM halting (as mathematcians can and have
    investigated) then "deciders" would NOT necessarily be TMs and trying to apply the TM HP proof in
    such a scenario would not work, due in effect to the sort of type errors you talk of below.

    BUT JUST TO MAKE IT ABSOLUTELY CLEAR - LINZ AND OTHERS (INCLUDING PO) ARE TALKING ONLY ABOUT TMS,
    and the Linz proof is valid in that setting.

    I've highlighted below where your argument goes off the rails for the Linz (TM based) proof.



    --------------------------------------------------------------------------------
    1. Background: Linz's Proof --------------------------------------------------------------------------------
    Linz demonstrates the halting problem's undecidability using a diagonalization
    argument. He assumes a hypothetical halting oracle H(P, I), which decides

    NO - he assumes a *TM* H, no oracles or TM extensions etc. just a plain TM.

    whether
    program P halts on input I. A program D is constructed such that:
    - D uses H to check if D(D) halts.
    - If H(D, D) says D(D) halts, D loops; otherwise, it halts.

    Right. H is one particular fixed TM.
    D is a modification of H, and is also a particular TM. Any TM, including D, can be represented as a
    finite string suitable for running with any halt decider TM, including H. No type error here, and
    nothing invalid or remotely dodgy in running H with the string representation of D on its tape.

    This creates a contradiction: D(D) halts if and only if it does not,
    implying no
    such H exists. The proof relies on self-reference, where D is both the program and
    input to H.

    If we accept this as a kind of self-reference, it is not of a "dodgy" kind, like circular
    definitions where a new entity is defined in terms of itself. Nothing circular like that is happening.

    First H is /given/ (fixed), and D is then uniquely defined in terms of H, being guaranteed to exist
    if H exists. The string version of D is then properly defined, and H can certainly be run with that
    string (indeed, with /any/ string of the conforming tape symbol set) as its input. No circular
    definitions here.


    --------------------------------------------------------------------------------
    2. Assumption: Self-Reference as a Type Error --------------------------------------------------------------------------------
    The refutation assumes that self-referential input, where a decider (e.g.,
    H) is
    conflated with the program being decided (e.g., D), is a category error in
    a typed
    computational model. We define:
    - Type Program: The type of executable programs (e.g., Turing machines).
    - Type Decider: The type of decision procedures (e.g., oracles deciding
    properties of programs).
    - Type Input: The type of inputs to programs, which may include encoded programs
    but excludes deciders.

    The HP proof is specifically concerning TMs, and deciders are a specialisation of TMs. Input to
    deciders does not exclude (encoded) deciders - all are just enoded TMs and encoded tape data, i.e.
    exactly the correct sort of data for feeding to a halt decider.

    In this system, the halting oracle has signature H: Program x Input ->
    {halt, loop}.
    Self-referential cases, where P = H or I encodes H, are ill-typed because
    H is of > type Decider, not Program.

    In HP proof, Decider is a specialisation of Program and is valid input for other deciders. No type
    errors / category errors.


    --------------------------------------------------------------------------------
    3. Refutation of Linz's Proof --------------------------------------------------------------------------------
    The following arguments demonstrate that Linz's proof fails under the type error
    assumption:

    Incorrect assumption for Linz proof.

    3.1 Type Restriction Invalidates Self-Reference ------------------------------------------------
    Constructing D such that D(D) queries H(D, D) commits a type error. Since
    H is of
    type Decider, it cannot be passed as a Program to itself, nor can D
    (derived from H)
    be a valid input to H. The type system enforces that inputs to H are of
    type Input,
    excluding Decider or programs embedding H. Thus, H(D, D) is undefined, and D's
    construction is invalid.

    3.2 Collapse of Diagonalization Argument ------------------------------------------------
    Linz's proof depends on H being applicable to all pairs (P, I), including
    (D, D).
    By disallowing self-referential inputs, the diagonalization step—where
    D(D) halts
    if and only if it does not—cannot be derived. Without this contradiction, the proof
    fails to show that H cannot exist.

    Incorrect assumption has (unsurprisingly) led to incorrect conclusion.


    3.3 Decidability in a Typed Model ------------------------------------------------
    In a typed system, a halting oracle H could decide halting for well-typed inputs
    (where P ≠ H and I does not encode H). Linz's proof assumes a type-free model, but
    in a typed model, the halting problem may be decidable for restricted
    cases,
    undermining the claim of universal undecidability.

    Yes, but within the "TM type system", Decider is a specialisation of TM, so there is no type error.
    You are just saying that OTHER systems can exist where Decider is NOT a specification of TM, and in
    those other systems, the HP proof does not apply. [Also note that D is not actually a decider]

    We all know that - search for "TM halting oracles" and the likes and you will find this is all well
    understood.

    Meanwhile, nothing in the (TM specific) Linz proof is invalidated by what you say because there are
    no type errors or improperly defined entities (self referential or otherwise).

    It seems to me that with the clarification that Linz is dealing ONLY WITH TMs, and that deciders are
    TMs, that you ought to recognise that [FOR THIS SCENARIO] the Linz proof is valid, and that no TM
    halt decider for TM halting exists. But knowing how this sort of thread generally goes I won't put
    any money on it! :)


    Regards,
    Mike.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mikko@21:1/5 to Mr Flibble on Mon Apr 21 12:37:29 2025
    On 2025-04-20 22:15:36 +0000, Mr Flibble said:

    ================================================================================

    Refutation of Linz's Halting Problem Proof
    Based on Type Error Assumption ================================================================================

    Date: April 20, 2025

    This document refutes Peter Linz's proof of the undecidability of the
    halting
    problem, as presented in "An Introduction to Formal Languages and
    Automata," under
    the assumption that self-referential input conflating deciders with
    programs
    constitutes a category (type) error. By enforcing a type system that separates
    deciders from programs, the diagonalization argument central to Linz's
    proof is
    invalidated, challenging the claim of universal undecidability.

    --------------------------------------------------------------------------------

    1. Background: Linz's Proof --------------------------------------------------------------------------------

    Linz demonstrates the halting problem's undecidability using a diagonalization
    argument. He assumes a hypothetical halting oracle H(P, I),

    ...

    Linz does not assume a halting oracle. The claim to b proven is that
    no Turing machine is a halting decder. H is a Truing machine and Linz
    proves that it is not a Turing machine.

    Linz also proves the claim with antother proof that does not use diagonalization.

    --
    Mikko

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)