• =?iso-8859-7?Q?Flibble=A2s?= Leap: Why Behavioral Divergence Implies a

    From Mr Flibble@21:1/5 to All on Sun May 11 13:21:31 2025
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to Mr Flibble on Sun May 11 15:44:44 2025
    On 11/05/2025 14:21, Mr Flibble wrote:
    This reframing dissolves the paradox
    by making the Halting Problem itself an ill-posed question.

    "P is a syntactically correct program in some well-defined
    Turing-complete language. Does P stop when it is applied to this
    data X?" is a meaningful and well-formed question. It's not a
    Carrollian question like Olcott's "what time is it, yes or no?"
    It has a sensible answer. Either P stops for X, or it doesn't.

    It's a question that can in many (but not all) cases be answered
    quickly and easily enough (and correctly) by humans, often
    requiring no more than a brief glimpse. (I say 'not all' only
    because it is not beyond the wit of mankind to trump up
    extraordinarily complicated and deliberately obfuscated code that
    might easily defeat a programmer's casual glance.)

    Some simple examples in K&R C:

    main(){}

    main(){for(;;);}

    main(){puts("Hello");}

    #include <stdio.h>
    main(){long c=0;int ch; while((ch = getchar()) !=
    EOF)++c;printf("%ld\n", c);} /* input: the complete works of
    Shakespeare */

    Any competent C programmer can solve these at a glance - Halts,
    Loops, Halts, Halts, in that order - so why shouldn't a
    programmer be able to?

    The Halting Problem asks a more complicated question. ``Is it
    possible to write a program that answers the above question for
    arbitrary P and arbitrary X?"

    Again, the question is meaningful and well-formed. It's
    syntactically and grammatically adequate, and anyone claiming not
    to know what it means is laying themselves open to a charge of disingenuousness. The only difficult part is the answer, but
    there's nothing self-contradictory or self-referential or
    paradoxical about the question.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to Mr Flibble on Sun May 11 16:25:54 2025
    On 11/05/2025 15:59, Mr Flibble wrote:
    On Sun, 11 May 2025 15:44:44 +0100, Richard Heathfield wrote:

    but there's nothing self-contradictory or self-referential or
    paradoxical about the question.

    That is simply untrue.

    That is simply untrue.

    Your turn.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to Mr Flibble on Sun May 11 16:47:09 2025
    On 11/05/2025 16:34, Mr Flibble wrote:
    On Sun, 11 May 2025 16:25:14 +0100, Richard Heathfield wrote:

    For a question to be semantically incorrect, it takes more than just you
    and your allies to be unhappy with it.

    For a question to be semantically correct, it takes more than just you and your allies to be happy with it.

    Indeed. It has to have meaning. It does. That meaning has to be
    understood by sufficiently intelligent people. It is.

    You don't like the question. I get that. I don't know /why/ you
    don't like it, because all your explanations to date have been
    complete expletive deleted. For a Usenet article to be
    semantically correct, it helps if your readers can understand
    what the <exp. del.> you're talking about.

    What I get from your stand is that you agree with olcott that a
    'pathological' input halts... no, never halts... well, you can't
    decide between you, but you're agreed that it's definitely
    decidable, right?

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Sun May 11 17:11:28 2025
    On 11/05/2025 16:49, olcott wrote:
    Yes and that can be applied to creating a formal system
    that comprises the set of all knowledge that can be
    expressed in language. In this case Unprovable(x) means
    ~Knowledge(x). Undecidability cannot possibly occur.

    Look up Gödel.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Sun May 11 17:13:13 2025
    On 11/05/2025 16:56, olcott wrote:
    The directly executed DD() simply halts because
    HHH has stopped the infinite recursion that it
    specifies on its second recursive call.

    DD "simply halts".

    DD emulated by HHH according to the rules of the
    x86 language cannot possibly halt. Because all deciders
    are required to report on what their finite string input
    specifies HHH must reject DD as non-halting.

    DD "cannot possibly halt".

    Undecidability, thy name is DD.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Sun May 11 18:03:30 2025
    On 11/05/2025 17:29, olcott wrote:
    On 5/11/2025 10:34 AM, Mr Flibble wrote:
    On Sun, 11 May 2025 16:25:14 +0100, Richard Heathfield wrote:

    For a question to be semantically incorrect, it takes more
    than just you
    and your allies to be unhappy with it.

    For a question to be semantically correct, it takes more than
    just you and
    your allies to be happy with it.

    Your turn, mate.

    /Flibble

    For a polar yes/no question to be proven incorrect
    only requires that both yes and no are the wrong answer.

    Fair enough.

    Definition: YNA - a type of answer that has exactly one of
    exactly two possible values, either 'yes' xor 'no' - not both,
    not neither, and not banana or half-past four.

    The two questions I presented upthread, which I'll now label QA
    and QB, are both of type YNA. They are as follows:

    QA: "P is a syntactically correct program in some well-defined
    Turing-complete language. Does P stop when it is applied to this
    data X?"

    QB: ``Is it possible to write a program that answers QA for
    arbitrary P and arbitrary X?"

    For any P and any X, QA has a correct YNA answer. What that
    answer is depends on P and X, but QA(P,X) can correctly answer
    with one valid YNA response or the other.

    QB, similarly, asks a YNA question. Either it's possible or it
    isn't. Alan Turing's work on decidability proved that the answer
    is 'no'. Mr Olcott believes that the proof is erroneous, so he
    might prefer to answer 'yes'. But one and only one of those
    answers is correct.

    The question, then, is semantically correct in accordance with Mr
    Olcott's criterion.

    I find it hard to credit that a grown man needs this stuff
    spelled out, but there it is.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to Mr Flibble on Sun May 11 18:15:47 2025
    On 11/05/2025 17:59, Mr Flibble wrote:
    it is impossible to obtain a halting result


    That sure looks like a concession that it's impossible to devise
    an algorithm that will produce a halting result.

    Well done. We got you there in the end.


    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Sun May 11 18:24:12 2025
    On 11/05/2025 18:14, olcott wrote:
    On 5/11/2025 11:54 AM, dbush wrote:
    On 5/11/2025 12:49 PM, olcott wrote:
    The category error is actually the fact that everyone
    here expects a termination analyzer to report on behavior
    other than the behavior that its input finite string
    actually specifies.

    That's because it's whether or not the algorithm described by
    the input halts when executed directly.

    No one cares what "the behavior that its input finite string
    specifies" because that's not what we asked about.

    int sum(int x, int y) { return x + y ; }
    when you ask about the sum of 5 + 7 using sum(3,2)
    you are asking the wrong question.

    By the same token, when asked what DDD's halting behavior is when
    executed and you answer with what you think it's halting
    behaviour is when simulated, you'd better be sure that the two
    answers are the same or you're answering the wrong question.

    HHH reports on the behavior that DDD specifies.

    What it should be reporting on is the behaviour that DDD
    manifests when directly executed.

    sum reports on the sum that its inputs specify.

    Often, yes. But it isn't hard to devise a way to break it so that
    it reports the wrong result. Is that the parallel with DDD that
    you intended to draw?


    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to Mr Flibble on Sun May 11 18:26:46 2025
    On 11/05/2025 18:15, Mr Flibble wrote:
    The truth is it neither halts nor doesn't halt as the question being asked
    is ill-formed.

    So it's stopped running, but it's started hopping?


    Your answer is bizarre, but it makes a lot more sense when we
    realise that you are desperately trying to avoid saying that it's
    undecidable.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to Mr Flibble on Sun May 11 18:31:46 2025
    On 11/05/2025 18:26, Mr Flibble wrote:
    On Sun, 11 May 2025 18:15:47 +0100, Richard Heathfield wrote:

    On 11/05/2025 17:59, Mr Flibble wrote:
    it is impossible to obtain a halting result


    That sure looks like a concession that it's impossible to devise an
    algorithm that will produce a halting result.

    Well done. We got you there in the end.

    No.

    Well, yyeess, actually.

    The reason why it is impossible

    Hold that thought. Never mind the reason for now. We can come to
    that another time.

    "...it is impossible..."

    Precisely.

    QED^3.


    to obtain a halting result for
    pathological input is not the reason proposed by Turing (i.e. self- referential diagonalization),

    blah blah blah yeah yeah

    it is impossible to obtain a halting result

    So it's undecidable, then? Yeah, I spotted that too.

    for pathological input because the self-referential conflation of decider
    and input is a category error that prevents us from performing diagonalization.
    more blah blah blah yeah yeah

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to Mr Flibble on Sun May 11 18:48:47 2025
    On 11/05/2025 18:33, Mr Flibble wrote:
    On Sun, 11 May 2025 18:26:46 +0100, Richard Heathfield wrote:

    On 11/05/2025 18:15, Mr Flibble wrote:
    The truth is it neither halts nor doesn't halt as the question being
    asked is ill-formed.

    So it's stopped running, but it's started hopping?


    Your answer is bizarre, but it makes a lot more sense when we realise
    that you are desperately trying to avoid saying that it's undecidable.

    It is undecidable

    Finally!

    but not for the reason given by Turing.


    Pausing only to reflect that in his 1936 paper on computable
    numbers he didn't use the word 'halt' (not even once), I'll leave
    it at that and let you think about which reason Turing gave and
    what issue you have with it.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to dbush on Sun May 11 19:27:06 2025
    On 11/05/2025 19:10, dbush wrote:
    On 5/11/2025 1:54 PM, olcott wrote:
    On 5/11/2025 12:49 PM, dbush wrote:
    On 5/11/2025 1:44 PM, olcott wrote:
    On 5/11/2025 12:34 PM, dbush wrote:
    On 5/11/2025 1:14 PM, olcott wrote:
    On 5/11/2025 11:54 AM, dbush wrote:
    On 5/11/2025 12:49 PM, olcott wrote:
    The category error is actually the fact that everyone
    here expects a termination analyzer to report on behavior
    other than the behavior that its input finite string
    actually specifies.

    That's because it's whether or not the algorithm described
    by the input halts when executed directly.

    No one cares what "the behavior that its input finite
    string specifies" because that's not what we asked about.

    int sum(int x, int y) { return x + y ; }
    when you ask about the sum of 5 + 7 using sum(3,2)
    you are asking the wrong question.

    HHH reports on the behavior that DDD specifies.
    sum reports on the sum that its inputs specify.


    Category error.  (2,3) is not (5,7), but (DDD) is (DDD).


    DDD correctly emulated by HHH SPECIFIES RECURSIVE EMULATION
    DDD correctly emulated by HHH1 DOES NOT SPECIFY RECURSIVE
    EMULATION




    What DDD "specifies" is irrelevent.  What matters is what
    algorithm is described by DDD,

    Specifies means provides every single step
    of the entire execution trace.

    Describes means to mention some details.
    We could "describe" DDD by saying that DDD
    has the name DDD.


    False.  By definition, a description contains all information
    necessary to exactly replicate what was described.

    By your definition, perhaps, but Mr Olcott's interpretation of
    the word is perfectly reasonable, perfectly ordinary, and easy to
    justify from the dictionary.

    Why not cede this utterly unimportant point instead of fighting a
    side-battle you can't win? It hardly matters, after all.

    What really matters is this: by simulating DDD, can HHH make
    correct predictions of the behaviour DDD exhibits when run
    natively? Call it definition or call it description if you will,
    but what we're really after is behaviour.

    If it can, that will give us a lemma - a staging post for the
    next part - but I'm not holding my breath. HHH still has syntax
    errors.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Mr Flibble on Sun May 11 15:48:26 2025
    On 5/11/25 10:48 AM, Mr Flibble wrote:
    On Sun, 11 May 2025 15:44:44 +0100, Richard Heathfield wrote:

    On 11/05/2025 14:21, Mr Flibble wrote:
    This reframing dissolves the paradox by making the Halting Problem
    itself an ill-posed question.

    "P is a syntactically correct program in some well-defined
    Turing-complete language. Does P stop when it is applied to this data
    X?" is a meaningful and well-formed question. It's not a Carrollian
    question like Olcott's "what time is it, yes or no?" It has a sensible
    answer. Either P stops for X, or it doesn't.

    It's a question that can in many (but not all) cases be answered quickly
    and easily enough (and correctly) by humans, often requiring no more
    than a brief glimpse. (I say 'not all' only because it is not beyond the
    wit of mankind to trump up extraordinarily complicated and deliberately
    obfuscated code that might easily defeat a programmer's casual glance.)

    Some simple examples in K&R C:

    main(){}

    main(){for(;;);}

    main(){puts("Hello");}

    #include <stdio.h>
    main(){long c=0;int ch; while((ch = getchar()) !=
    EOF)++c;printf("%ld\n", c);} /* input: the complete works of Shakespeare
    */

    Any competent C programmer can solve these at a glance - Halts, Loops,
    Halts, Halts, in that order - so why shouldn't a programmer be able to?

    The Halting Problem asks a more complicated question. ``Is it possible
    to write a program that answers the above question for arbitrary P and
    arbitrary X?"

    Again, the question is meaningful and well-formed. It's syntactically
    and grammatically adequate, and anyone claiming not to know what it
    means is laying themselves open to a charge of disingenuousness. The
    only difficult part is the answer, but there's nothing
    self-contradictory or self-referential or paradoxical about the
    question.

    It is insufficient for the question to be syntactically correct, it needs
    to be SEMANTICALLY correct too.

    /Flibble

    And what is semantically incorrect?

    A program will either halt or not, so asking which it does is
    semantically valid.

    A representation of a program also uniquely specifies that same result
    for the program it represents.

    The error in your arguement, is that the "decider" you try to talk
    about, isn't actually a program, as it doesn't have a define definite
    algorithm that it follows.

    You can't talk of the two possible answer that H(D) can give, as for a
    given H, H(D) can only give one answer, the answer that its algorithm gives.

    Thus the "pathological" D, has no problem using a copy of that algorithm
    to find out what that answer will be, and then does the opposite.

    There is no semantic error in that.

    Since the question is about what the input does, and NOT about what
    should the decider return, it is a objectivly valid criteria.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Mr Flibble on Sun May 11 15:54:17 2025
    On 5/11/25 11:34 AM, Mr Flibble wrote:
    On Sun, 11 May 2025 16:25:14 +0100, Richard Heathfield wrote:

    For a question to be semantically incorrect, it takes more than just you
    and your allies to be unhappy with it.

    For a question to be semantically correct, it takes more than just you and your allies to be happy with it.

    Your turn, mate.

    /Flibble

    But the question has a clear and precise meaning, and a clear and
    precise correct answer.

    Programs have precise behavior, and thus it is semantically correct to
    ask about that behavior.

    Of course, to get that answer, you need to define the machine that
    question will be asked about, and for the proof program, that means you
    need to first select which specific decider you want to claim is correct.

    Having defined that H, we can build the D by the defined formula, and
    that formula says it will behave differently than what H(<D>) says it
    will do. The answer that H(<D>) gives was fixed by the definition of H
    (as its answer to EVERY possible input was) and thus the error was not
    "caused" by something in <D>, the pathological formula just found one of
    the errors in the processing of its input.

    Thus, there is no semantic error.

    If you want to disagree, you need to specify where you see the error.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Mr Flibble on Sun May 11 15:42:29 2025
    On 5/11/25 9:21 AM, Mr Flibble wrote:
    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.

    But it doesn't a a "decider", must, BY DEFINITION, always return in
    finite time, so a decider can not let itself get stuck in "infinite
    recursion".

    - This behavior differs from direct execution (e.g., a crash due to a
    stack overflow).

    No, because if the HHH that DD calls *IS* a decider, it will not get
    into the infinite recursion.

    - This divergence shows that the program (as code) and its representation
    (as data) are operationally distinct.

    Nope, it shows that you concept of a decider is incorrect.

    What is a caterory error is the assumption that a given program can be
    both a correct simulator and a decider.

    Yes the program and its representation are distinct entities, but
    entities in a well defined relationship, allowing the translation of requirements across it.

    I guess you think computers can't process Numbers, Text, Sound or
    Images, as none of these are things that the processor actually directly processes.


    - Therefore, treating them as the same "type" (as Turing's proof does)
    leads to inconsistency.

    Nope, the error is the assumption that a program can be both a correct
    decider and a correct simulator at the same time.


    2. Generalization to All Deciders
    ---------------------------------
    - If simulation reveals this type mismatch, then no valid decider can rely
    on conflating program and representation.

    But there isn't a type mismatch

    - Diagonalization (e.g., defining D(x) = if H(x,x) then loop else halt) necessarily crosses the type boundary.

    What "Type Boundry". You haven't defined a "type".

    - The contradiction in the Halting Problem arises from this type error,
    not from inherent undecidability.

    But you haven't defined what type was violated, only that you have found
    it impossible to do what you want to do.

    - Hence, the Halting Problem is ill-defined for self-referential input.

    Nope, it shows that the concept of a simulating halt decider, which
    requires the machine to be both a correct simulator and a correct halt
    decider is the ill-defined term based on a self-contradictory definition.


    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.

    Then those system are just proved to be not Turing Complete, and thus
    not applicable to Computation Theory.

    If you can not take a program D, and from that compute a representation
    of that <D>, such that you can make a simulator that can process that
    <D> to recreate the behavior of D, and then give that input to D itself,
    then you compulation system is just inferior to the Turing Complete system.


    4. Conclusion
    -------------
    - The Halting Problem depends on self-reference and diagonalization.

    Nope, the problem itself just asks if a finite algorithm expressed in a
    Turing Complete logic system can take as its input a representation of
    any such finite algorithm and a data input for it, and determine if that
    finite algorithm / data combination would complete in finite time when performed.

    This is a valid question, as for *ANY* possible input, there is a
    correct answer, and every program / input combination, its behavior is
    FULLY determined and *WILL* either halt in a finite number of steps, or continue to run for an unbounded number of steps.


    - If these constructs are blocked due to type/category errors, the proof breaks down.

    No, it says your type system is in error, as the problem has no type or category errors.

    - Thus, the Halting Problem isn’t undecidable—it’s malformed when it crosses type boundaries.

    But it doesn't cross the type boundries of the system it is in.

    - This is not a refutation of Turing, but a reformulation of the problem under more disciplined typing rules.

    Which just shows your typing rules are not compatible with Turing
    Complete computation systems.


    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.


    If you want to try to do that, you need to do like Zermelo did, and work
    out a fully defined alternate theory that was still useful for the
    problems desired to be done.

    For most people, the fact that some problems are undecidable isn't a big problem, as the simple counting argument shows that it is expected. To
    avoid that problem, you are going to need to drastically reduce the
    space of what a computation can do.

    That is what ZFC did. The problem with the older Set Theory is that it
    allowed virtually unrestricted rules to create a set, and this is what
    lead to the contradictions. By defining a different set of rules for how
    to build a set, and showing that it could still handle the vast majority
    of the real problems that people wanted to use, made it a viable set theory.

    IF you want to try to define rules about what can be done, go ahead and
    try. Remember, it needs to be a FORMAL definition, which fully defines
    what can be done. It also needs to result in a system powerful enough to
    be useful for a lot of the current cases.

    Go ahead and try to define it.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Mr Flibble on Sun May 11 15:55:34 2025
    On 5/11/25 11:49 AM, Mr Flibble wrote:
    On Sun, 11 May 2025 16:47:09 +0100, Richard Heathfield wrote:

    On 11/05/2025 16:34, Mr Flibble wrote:
    On Sun, 11 May 2025 16:25:14 +0100, Richard Heathfield wrote:

    For a question to be semantically incorrect, it takes more than just
    you and your allies to be unhappy with it.

    For a question to be semantically correct, it takes more than just you
    and your allies to be happy with it.

    Indeed. It has to have meaning. It does. That meaning has to be
    understood by sufficiently intelligent people. It is.

    You don't like the question. I get that. I don't know /why/ you don't
    like it, because all your explanations to date have been complete
    expletive deleted. For a Usenet article to be semantically correct, it
    helps if your readers can understand what the <exp. del.> you're talking
    about.

    What I get from your stand is that you agree with olcott that a
    'pathological' input halts... no, never halts... well, you can't decide
    between you, but you're agreed that it's definitely decidable, right?

    Re-read the OP for my answer:

    Which is full of errors as I have pointed out.


    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.


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sun May 11 15:58:45 2025
    On 5/11/25 11:56 AM, olcott wrote:
    On 5/11/2025 10:49 AM, Mr Flibble wrote:
    On Sun, 11 May 2025 16:47:09 +0100, Richard Heathfield wrote:

    On 11/05/2025 16:34, Mr Flibble wrote:
    On Sun, 11 May 2025 16:25:14 +0100, Richard Heathfield wrote:

    For a question to be semantically incorrect, it takes more than just >>>>> you and your allies to be unhappy with it.

    For a question to be semantically correct, it takes more than just you >>>> and your allies to be happy with it.

    Indeed. It has to have meaning. It does. That meaning has to be
    understood by sufficiently intelligent people. It is.

    You don't like the question. I get that. I don't know /why/ you don't
    like it, because all your explanations to date have been complete
    expletive deleted. For a Usenet article to be semantically correct, it
    helps if your readers can understand what the <exp. del.> you're talking >>> about.

    What I get from your stand is that you agree with olcott that a
    'pathological' input halts... no, never halts... well, you can't decide
    between you, but you're agreed that it's definitely decidable, right?

    Re-read the OP for my answer:

    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).

    The directly executed DD() simply halts because
    HHH has stopped the infinite recursion that it
    specifies on its second recursive call.


    Right, HHH ALWAYS breaks that loop by aborting, and thus DD is
    non-halting, and *ANY* correct (and thus complete) emulation will reach
    a final state.


    DD emulated by HHH according to the rules of the
    x86 language cannot possibly halt. Because all deciders
    are required to report on what their finite string input
    specifies HHH must reject DD as non-halting.



    But HHH doesn't do that. You just admitted in the previous paragraph
    that HHH stops its simulation, and thus breaks the rules of the x86
    processor, so your criteria is just based on lies. The fact that a
    partial emulation doesn't reach the final state that the complete
    emulation does isn't actually evidence of non-halting.

    You don't get to assume that the impossible happens.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Mr Flibble on Sun May 11 16:00:37 2025
    On 5/11/25 10:59 AM, Mr Flibble wrote:
    On Sun, 11 May 2025 15:44:44 +0100, Richard Heathfield wrote:

    but there's nothing self-contradictory or self-referential or
    paradoxical about the question.

    That is simply untrue.

    /Flibble


    So, where is the error?

    Remember, use the RIGHT question, not a strawman.

    The question is: Does the program the input represents halt in a finite
    number of steps when run, or does it never halt after an unbounded
    number of steps.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Mr Flibble on Sun May 11 19:19:38 2025
    On 5/11/25 5:42 PM, Mr Flibble wrote:
    On Sun, 11 May 2025 15:55:34 -0400, Richard Damon wrote:

    On 5/11/25 11:49 AM, Mr Flibble wrote:
    On Sun, 11 May 2025 16:47:09 +0100, Richard Heathfield wrote:

    On 11/05/2025 16:34, Mr Flibble wrote:
    On Sun, 11 May 2025 16:25:14 +0100, Richard Heathfield wrote:

    For a question to be semantically incorrect, it takes more than just >>>>>> you and your allies to be unhappy with it.

    For a question to be semantically correct, it takes more than just
    you and your allies to be happy with it.

    Indeed. It has to have meaning. It does. That meaning has to be
    understood by sufficiently intelligent people. It is.

    You don't like the question. I get that. I don't know /why/ you don't
    like it, because all your explanations to date have been complete
    expletive deleted. For a Usenet article to be semantically correct, it >>>> helps if your readers can understand what the <exp. del.> you're
    talking about.

    What I get from your stand is that you agree with olcott that a
    'pathological' input halts... no, never halts... well, you can't
    decide between you, but you're agreed that it's definitely decidable,
    right?

    Re-read the OP for my answer:

    Which is full of errors as I have pointed out.

    Sorry mate but you have missed the boat as I have moved on: I am happy
    with my final solution; I glanced over all your responses in this thread
    and they are all invalid.


    In other words, you are admtting to being happy to be in error.

    In summary:
    * pathological input is undecidable but not for the reason given in the extant halting problem proofs;
    * pathological input should be removed from the set of programs that can
    be analysed by a decider for further research in this area to be useful rather than just a circle jerk.


    But the pathological input *IS* a program (at least if the decider is),
    and thus a valid source of the input to a decider.

    Your logic just fails when you take that fact into account. What you are
    trying to do is make a valid program not a valid program which you can
    not do without gutting the principle of programming.
    /Flibble

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Keith Thompson on Sun May 11 19:16:14 2025
    On 5/11/25 7:05 PM, Keith Thompson wrote:
    Mr Flibble <flibble@red-dwarf.jmc.corp> writes:
    On Sun, 11 May 2025 18:15:47 +0100, Richard Heathfield wrote:

    On 11/05/2025 17:59, Mr Flibble wrote:
    it is impossible to obtain a halting result


    That sure looks like a concession that it's impossible to devise an
    algorithm that will produce a halting result.

    Well done. We got you there in the end.

    No. The reason why it is impossible to obtain a halting result for
    pathological input is not the reason proposed by Turing (i.e. self-
    referential diagonalization), it is impossible to obtain a halting result
    for pathological input because the self-referential conflation of decider
    and input is a category error that prevents us from performing
    diagonalization.

    Is it possible to determine whether a given input is "pathological" or not?

    that is the problem, as the answer is no. It is possible to create a "patholgocial" input that can not be determined to be such, as to make
    his pathological input, you just need to make a finction that returns
    the same values as the original, and you can tweak the code in an
    infinite number of ways to hide the pathology.


    To usefully advance research in this area pathological input needs to be
    excluded from the set of programs that can be analysed by a decider.

    Can this exclusion be performed reliably and consistently?


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sun May 11 19:22:18 2025
    On 5/11/25 5:45 PM, olcott wrote:
    On 5/11/2025 4:42 PM, Mr Flibble wrote:
    On Sun, 11 May 2025 15:55:34 -0400, Richard Damon wrote:

    On 5/11/25 11:49 AM, Mr Flibble wrote:
    On Sun, 11 May 2025 16:47:09 +0100, Richard Heathfield wrote:

    On 11/05/2025 16:34, Mr Flibble wrote:
    On Sun, 11 May 2025 16:25:14 +0100, Richard Heathfield wrote:

    For a question to be semantically incorrect, it takes more than just >>>>>>> you and your allies to be unhappy with it.

    For a question to be semantically correct, it takes more than just >>>>>> you and your allies to be happy with it.

    Indeed. It has to have meaning. It does. That meaning has to be
    understood by sufficiently intelligent people. It is.

    You don't like the question. I get that. I don't know /why/ you don't >>>>> like it, because all your explanations to date have been complete
    expletive deleted. For a Usenet article to be semantically correct, it >>>>> helps if your readers can understand what the <exp. del.> you're
    talking about.

    What I get from your stand is that you agree with olcott that a
    'pathological' input halts... no, never halts... well, you can't
    decide between you, but you're agreed that it's definitely decidable, >>>>> right?

    Re-read the OP for my answer:

    Which is full of errors as I have pointed out.

    Sorry mate but you have missed the boat as I have moved on: I am happy
    with my final solution; I glanced over all your responses in this thread
    and they are all invalid.

    In summary:
    * pathological input is undecidable but not for the reason given in the
    extant halting problem proofs;
    * pathological input should be removed from the set of programs that can
    be analysed by a decider for further research in this area to be useful
    rather than just a circle jerk.

    /Flibble

    I use similar reasoning for my rebuttal of
    the Tarski Undefinability theorem.

    The formalized version of "This sentence is not true"
    is rejected as not having any truth value.


    WHich is just a false comparison, proving your stupidity.

    The program the input represets, D/DD/DDD has a definite behavior when
    run as long as it includes the decider it calls, and that decider is a
    program.

    Thus, if your system is setup right, the quesiton, does the program this
    input represents halt? HAS a definite answer, and you analogiy is proved
    to ve a lie, and your self stupid to make it REPEATEDLY after having the
    error pointed out repeatedly.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sun May 11 19:45:09 2025
    On 5/11/25 7:14 PM, olcott wrote:
    On 5/11/2025 6:05 PM, Keith Thompson wrote:
    Mr Flibble <flibble@red-dwarf.jmc.corp> writes:
    On Sun, 11 May 2025 18:15:47 +0100, Richard Heathfield wrote:

    On 11/05/2025 17:59, Mr Flibble wrote:
    it is impossible to obtain a halting result


    That sure looks like a concession that it's impossible to devise an
    algorithm that will produce a halting result.

    Well done. We got you there in the end.

    No. The reason why it is impossible to obtain a halting result for
    pathological input is not the reason proposed by Turing (i.e. self-
    referential diagonalization), it is impossible to obtain a halting
    result
    for pathological input because the self-referential conflation of
    decider
    and input is a category error that prevents us from performing
    diagonalization.

    Is it possible to determine whether a given input is "pathological" or
    not?

    To usefully advance research in this area pathological input needs to be >>> excluded from the set of programs that can be analysed by a decider.

    Can this exclusion be performed reliably and consistently?


    That is a good question. The answer is definitely
    yes. When HHH emulates DDD it only needs to see
    that DDD is calling itself with no conditional branch
    instructions inbetween.

    Whether a function computed by a Turing machine can
    do this is a different question.


    So, try to do it.

    Note, if your system *IS* the equivalent of a Turing Machine, then if
    yours can do it so can a Turing Machine.

    The problem is that you system is NOT the equivalent of the pair of
    Turing Machines, and you have even made stipulations that prove that
    your system is less than Turing Complete.

    The key problem is that you have inforced a restriction that the
    function HHH can not be "cloned" as can be done in a real Turing System.
    If I can make an equvalent copy of the code of HHH (and perhaps make
    some cosmetic but not functional changing) then HHH can not detect that operation.

    This is of course, beyond your comprehension.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to Richard Damon on Mon May 12 02:07:18 2025
    On 12/05/2025 00:19, Richard Damon wrote:
    On 5/11/25 5:42 PM, Mr Flibble wrote:

    <snip>

    I am happy with my final solution; I glanced over all your
    responses in this thread and they are all invalid.


    In other words, you are admtting to being happy to be in error.

    He has form for placing a finger in each ear and yelling "I'm
    right I'm right I'm right you're all wrong!"

    There's no talking to 2-year-olds.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sun May 11 21:13:46 2025
    On 5/11/25 8:41 PM, olcott wrote:
    On 5/11/2025 6:45 PM, Richard Damon wrote:
    On 5/11/25 7:14 PM, olcott wrote:
    On 5/11/2025 6:05 PM, Keith Thompson wrote:
    Mr Flibble <flibble@red-dwarf.jmc.corp> writes:
    On Sun, 11 May 2025 18:15:47 +0100, Richard Heathfield wrote:

    On 11/05/2025 17:59, Mr Flibble wrote:
    it is impossible to obtain a halting result


    That sure looks like a concession that it's impossible to devise an >>>>>> algorithm that will produce a halting result.

    Well done. We got you there in the end.

    No. The reason why it is impossible to obtain a halting result for
    pathological input is not the reason proposed by Turing (i.e. self-
    referential diagonalization), it is impossible to obtain a halting
    result
    for pathological input because the self-referential conflation of
    decider
    and input is a category error that prevents us from performing
    diagonalization.

    Is it possible to determine whether a given input is "pathological"
    or not?

    To usefully advance research in this area pathological input needs
    to be
    excluded from the set of programs that can be analysed by a decider.

    Can this exclusion be performed reliably and consistently?


    That is a good question. The answer is definitely
    yes. When HHH emulates DDD it only needs to see
    that DDD is calling itself with no conditional branch
    instructions inbetween.

    Whether a function computed by a Turing machine can
    do this is a different question.


    So, try to do it.


    No need to. DDD emulated by HHH according to the
    rules of the computational language that DD is
    encoded within already proves that the HP
    "impossible" input specifies a non-halting
    sequence of configurations.

    So, you are admitting you can't.

    The rules of computation language say that HHH must be a funciton of
    *OMLY* it explict input, and thus for HHH to actually emulate DDD, then
    the HHH that DDD calls must be part of the input (and part of DDD).

    Since none of your HHH's that give an answer actually DO a correct
    emulation, and that is the only kind really accept by computational
    language (without the EXPLICT partial modifier), your statement is just
    a NULL statement that doesn't say anything.

    Since the CORRECT emulation of DDD by the rules you require (minus the
    invalid restriction that it be by a machine that can't do it) shows that
    DDD WILL halt for any of your HHH that return an answer, so every
    HHH(DDD) that returns 0 is just wrong.


    This by itself is much more progress than anyone
    else has ever made on the halting problem.


    Nope, as it is just lies.

    To the best of my recollection
    Mike has already agreed that the outermost HHH
    can dig into the details of all of the levels
    of recursive simulation to get the details that
    it currently uses. All of these details are
    merely data to this outermost HHH.

    This is analogous to a master UTM examining
    all of its own tape, even those portions that
    are allocated to slave UTMs.


    Which doesn't help, since you don't actually have any UTMs. Remember, BY DEFINITON, a UTM just reproduces the behavior of the machine described
    by its input. Not report what it does, but to DO it. So, BY DEFINITION,
    a UTM given a non-halting input, can not halt. And thus, a UTM can't be
    used as a decider if the input can be a non-halting program, and thus
    worthless as a Halt Decider.

    Remember, one way of stateing the requirements of a Halt Decider is that
    H(D) returns "Halting" if UTM(D) will halt, and "Non-Halting" if UTM(D)
    will not halt. THis does not mean change D to use UTM, it mean the exact
    D that was given to H is given to UTM, and NONE of the code used by it
    changes.

    The fact that you model can't seem to handle that just shows your model
    is incorrect.

    And yes, the outer Decider can try to understand the contents and
    meaning of the tape of the machine it is emulating, but first you have
    to show how it recognizes that machine, when you don't put non-Turing
    Complete limitations on your programs like you do. This means that DDD
    can have its own copy of HHH and thus HHH can't use its address as the
    test, and DDD needs to be able to make a copy of its input at another
    portion of the tape (new memory addresses in your system).

    Try to allow that and see what you get. The fact that your system fails
    to be Turing Complete just proves that it can't be the equivalent of the systems in the proof.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Mon May 12 02:34:45 2025
    On 12/05/2025 02:12, olcott wrote:

    <snip>

    No one here is using any actual reasoning
    in their rebuttals of my work.

    I have already shown several places where your 'work' violates
    the rules of its implementation's language standard, which thus
    absolves the implementation from any obligation to echo in its
    output the intention you thought you were weaving into the code.

    Wake me when you've fixed up the code.

    They rely
    on dogma, misdirection, deflection and the
    strawman error.

    The last three methods are dishonest.

    And basing your claims on the output of dodgy code /isn't/?

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sun May 11 21:37:58 2025
    On 5/11/25 9:12 PM, olcott wrote:
    On 5/11/2025 8:07 PM, Richard Heathfield wrote:
    On 12/05/2025 00:19, Richard Damon wrote:
    On 5/11/25 5:42 PM, Mr Flibble wrote:

    <snip>

    I am happy with my final solution; I glanced over all your
    responses in this thread and they are all invalid.


    In other words, you are admtting to being happy to be in error.

    He has form for placing a finger in each ear and yelling "I'm right
    I'm right I'm right you're all wrong!"

    There's no talking to 2-year-olds.


    No one here is using any actual reasoning
    in their rebuttals of my work. They rely
    on dogma, misdirection, deflection and the
    strawman error.

    The last three methods are dishonest.


    No, they are responding with rules and definitions from the system in
    question,

    THAT is honest.

    Note, "Dogma" can be truth, when it is pronouncement of the definitions
    of the system.

    All you are doing is trying to respond with baseless assertation based
    on equivocations, contradictions, and outright lies.

    THAT is just dishonest, and prove that you have no idea about what you
    are talking about.

    If you want to try to create a new system, as you sometimes seem to
    imply when you get a bit more honest, you need to be actually honest
    about it, and not pretend that you system is not "the system". You can
    try to work out a real detailed and complete definition of POOPS (Peter
    Olcotts Other Programming System) and then show what it can do, and see
    if you can find any takers willing to see if it is useful.

    Until then, you are just proving yourself to be just a blantant liar
    that thinks rules don't apply to him.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Mon May 12 03:23:32 2025
    On 12/05/2025 03:05, olcott wrote:
    On 5/11/2025 8:34 PM, Richard Heathfield wrote:
    On 12/05/2025 02:12, olcott wrote:

    <snip>

    No one here is using any actual reasoning
    in their rebuttals of my work.

    I have already shown several places where your 'work' violates
    the rules of its implementation's language standard,

    My compiler disagrees so I can't fix that.

    C compilers are obliged to diagnose syntax errors. If they don't,
    they're not-quite-C compilers. You need to decide whether you're
    writing in C or whether you're not.

    C compilers are /not/ obliged to diagnose screw-ups by people who
    don't understand the language, but such screw-ups still make your
    code invalid C.

    Halt7.c must be compiled with the Microsoft
    compiler to get the correct object file type.

    C programs must follow a set of rules (ISO 9899) in order to be
    correct C programs. I have already pointed out several places in
    which Halt7.c doesn't follow those rules, and you have done
    nothing to address any of the problems I have identified.

    That's fine. I'm not your boss, and you are not in any way
    obliged to fix your code.

    But until you do, your code is broken.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Mon May 12 03:37:12 2025
    On 12/05/2025 03:09, olcott wrote:
    On 5/11/2025 8:37 PM, Richard Damon wrote:
    On 5/11/25 9:12 PM, olcott wrote:
    On 5/11/2025 8:07 PM, Richard Heathfield wrote:
    On 12/05/2025 00:19, Richard Damon wrote:
    On 5/11/25 5:42 PM, Mr Flibble wrote:

    <snip>

    I am happy with my final solution; I glanced over all your
    responses in this thread and they are all invalid.


    In other words, you are admtting to being happy to be in error.

    He has form for placing a finger in each ear and yelling "I'm
    right I'm right I'm right you're all wrong!"

    There's no talking to 2-year-olds.


    No one here is using any actual reasoning
    in their rebuttals of my work. They rely
    on dogma, misdirection, deflection and the
    strawman error.

    The last three methods are dishonest.


    No, they are responding with rules and definitions from the
    system in question,


    A syntax error reporting by one compiler

    ALL C compilers are required to diagnose ALL syntax errors and
    ALL constraint violations.

    and considered
    irrelevant by another compiler

    In my experience, Microsoft's C compiler - although not perfect -
    is pretty good at following conformance rules. I'd be surprised
    to learn from a competent source that it misses a syntax error.

    provides zero evidence
    that DDD correctly emulated by some HHH halts.

    Oh, we're a /long/ way off that. We've got all the dodgy derefs
    to fix first.

    <snip>

    Because you don't give a rat's ass for the actual
    truth

    We've known the truth for 90 years, and there's no 'actual truth'
    about a buggy program that gives the wrong answer.

    you ignore the actual rebuttal requirements.

    You mean like your ignoring rebuttals of your dodgy code?

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Mon May 12 05:13:36 2025
    On 12/05/2025 04:32, olcott wrote:
    C code is not as 100% exactingly precise as x86 code.

    Mine is.

    Yours? Maybe not so much.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to Keith Thompson on Mon May 12 05:12:13 2025
    On 12/05/2025 04:11, Keith Thompson wrote:
    Richard Heathfield <rjh@cpax.org.uk> writes:
    [...]
    ALL C compilers are required to diagnose ALL syntax errors and ALL
    constraint violations.

    Yes, all conforming C compilers are required to do that. (Well,
    strictly speaking they're only required to issue at least one diagnostic
    for any translation unit that violates a syntax rule or constraint.)

    I was unintentionally ambiguous, for which I apologise.

    The point I sought to make is that there is no syntax error (or
    constraint violation) so trivial that a compiler is given licence
    not to issue a diagnostic it if it has no other reason so to do.

    That is, they are all capable of ticking the box that says 'must
    issue at least one diagnostic'.


    [...]

    In my experience, Microsoft's C compiler - although not perfect - is
    pretty good at following conformance rules. I'd be surprised to learn
    from a competent source that it misses a syntax error.

    I wouldn't, since few if any C compilers are conforming by default.

    I was talking about conforming mode, which IIRC (it's been a
    while) is invoked by -W4 (a warning level that I habitually used
    in the days when I still used Microsoft software).

    I've just tried 4 different C compilers (gcc, clang, and tcc
    on Ubuntu, MS Visual Studio 2022 on Windows), and none of them
    diagnosed a stray semicolon at file scope *by default*. gcc and
    clang can be persuaded to diagnose it. tcc, as far as I can tell,
    cannot; I don't believe it claims to be fully conforming in any mode.
    I wasn't able to get MSVS to diagnose it, but there could easily
    be an option that I'm missing.

    Could you crank MSVS up to -W4 (or whatever the max is these
    days) and try again? I hate to impose, but of course it's your
    own fault for qualifying as a competent source. ;-)

    If it doesn't diagnose at its maximum warning level, then okay,
    ~I lose the syntax battle.

    If I wanted to prove something in mathematical logic using C code as
    a vehicle, I personally would try to use fully standard-conforming C.

    So would I, if only to fend off pedantic fuss-pots such as...
    well, me, I suppose...

    [Aside: I just checked what I laughingly call my archives to
    verify this, and I found an old (and I do mean ancient) Monty
    Hall simulation - 100 lines of C that gcc wasn't too pleased with
    when I turned on nanny mode, but which I'd be perfectly happy to
    defend before the X3J11 committee.

    100 lines isn't much, of course, but it was throwaway code, so I
    had less motivation than usual to follow the rules, but follow
    them I still did.]

    ...and also to eliminate a potential source of error. Why tempt fate?

    I *might* consider using a more lax C-like language, such as the
    language accepted by some C compiler in its default mode -- but I'd
    need a good reason to do that, and I'd want a rigorous definition
    of anything I use that differs from standard C.

    Likewise.

    I'd also steer clear of basing a mathematical proof on a program
    that is sensitive to the file formats of a particular platform.
    I'd need an *astoundingly* good reason to do that.


    It's possible that olcott's C-like code has well defined behavior
    in the implementation he's using. If so, I'm not sure there's any fundamental reason to use something close to C rather than using C
    itself in an attempted refutation of some well known mathematical
    proof. (I wouldn't expect either C or something C-like to be a
    good vehicle for such a proof. I don't think C is defined rigorously
    enough to be useful for such a task, and any C-like language is even
    less so.)

    FYI Agda, Lean, and Rocq all offer proof vehicles, and all three
    are likely to be better suited to the task than is C.

    olcott will likely use this to claim that I support his views.
    He will be wrong.

    It hardly matters. A crank is a crank is a crank.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to Keith Thompson on Mon May 12 05:58:44 2025
    On 12/05/2025 05:37, Keith Thompson wrote:
    Richard Heathfield <rjh@cpax.org.uk> writes:
    On 12/05/2025 04:11, Keith Thompson wrote:
    Richard Heathfield <rjh@cpax.org.uk> writes:
    [...]
    ALL C compilers are required to diagnose ALL syntax errors and ALL
    constraint violations.
    Yes, all conforming C compilers are required to do that. (Well,
    strictly speaking they're only required to issue at least one diagnostic >>> for any translation unit that violates a syntax rule or constraint.)

    I was unintentionally ambiguous, for which I apologise.

    The point I sought to make is that there is no syntax error (or
    constraint violation) so trivial that a compiler is given licence not
    to issue a diagnostic it if it has no other reason so to do.

    That is, they are all capable of ticking the box that says 'must issue
    at least one diagnostic'.

    [...]

    In my experience, Microsoft's C compiler - although not perfect - is
    pretty good at following conformance rules. I'd be surprised to learn
    from a competent source that it misses a syntax error.
    I wouldn't, since few if any C compilers are conforming by default.

    I was talking about conforming mode, which IIRC (it's been a while) is
    invoked by -W4 (a warning level that I habitually used in the days
    when I still used Microsoft software).

    I've just tried 4 different C compilers (gcc, clang, and tcc
    on Ubuntu, MS Visual Studio 2022 on Windows), and none of them
    diagnosed a stray semicolon at file scope *by default*. gcc and
    clang can be persuaded to diagnose it. tcc, as far as I can tell,
    cannot; I don't believe it claims to be fully conforming in any mode.
    I wasn't able to get MSVS to diagnose it, but there could easily
    be an option that I'm missing.

    Could you crank MSVS up to -W4 (or whatever the max is these days) and
    try again? I hate to impose, but of course it's your own fault for
    qualifying as a competent source. ;-)

    It's "/W4".

    /, yes. I meant /, honest. [Crosses fingers behind back]

    The default appears to be "/W3".

    With "/W4", or even "/Wall", it still doesn't diagnose a stray semicolon
    at file scope. (I wouldn't expect a warning option to be the
    incantation that makes the compiler conform to the standard.)

    The "/Za" option

    ...rings a very faint bell.

    is supposed to disable language extensions,

    /Za used to do a fair job. For example, it revealed BCPL comments
    in math.h, back in the day when BCPL comments were a syntax
    error. Irritating because I wanted a clean compile but didn't
    want to hack about in the implementation headers. (I can't
    remember how I solved that - a pragma, possibly.)

    but it
    complains that "'/Za' and '/std:c17' command-line options are
    incompatible".

    Ha!

    The implementation supports both C and C++. It seems to treat C as a second-class citizen.

    That was always the case, although the rumour is that they're
    taking C conformance more seriously these days. (I heard that
    quite recently. This year, I think.)

    (I think, but I'm not sure, that a stray
    semicolon at file scope is legal in C++; it's called an
    "empty-declaration".)

    I wasted half an hour trying to chase down the same question.


    If it doesn't diagnose at its maximum warning level, then okay, ~I
    lose the syntax battle.

    I'd say that Microsoft's compiler loses the syntax battle.

    Fair enough. But it does mean that Mr Olcott has a reasonable
    excuse for his code failing to observe a C syntax rule. He should
    still fix it, of course, but I'm not seeing any great interest
    from Mr Olcott in getting the code right.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Mon May 12 21:38:27 2025
    On 5/11/25 10:53 PM, olcott wrote:
    On 5/11/2025 9:42 PM, dbush wrote:
    On 5/11/2025 10:39 PM, olcott wrote:
    On 5/11/2025 9:34 PM, dbush wrote:
    On 5/11/2025 10:30 PM, olcott wrote:
    On 5/11/2025 9:23 PM, Richard Heathfield wrote:
    On 12/05/2025 03:05, olcott wrote:
    On 5/11/2025 8:34 PM, Richard Heathfield wrote:
    On 12/05/2025 02:12, olcott wrote:

    <snip>

    No one here is using any actual reasoning
    in their rebuttals of my work.

    I have already shown several places where your 'work' violates >>>>>>>> the rules of its implementation's language standard,

    My compiler disagrees so I can't fix that.

    C compilers are obliged to diagnose syntax errors. If they don't,
    they're not-quite-C compilers. You need to decide whether you're
    writing in C or whether you're not.



    _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]

    When testing the proof-of-concept not one line
    of my code is relevant. The only thing that needs
    be determined is the behavior of DDD under some
    HHH

    Category error.  Algorithm DDD isn't fully defined until algorithm
    HHH is fully defined.

    So yes the code is relevant.

    Algorithm HHH is fully defined as an x86 emulator
    that emulates one or more steps of DDD according
    to the rules of the x86 language.

    Which means "some HHH" is a category error.  There is only one
    algorithm HHH and one algorithm DDD.


    *You absolutely refuse to get the gist of anything*

    There cannot possibly exist an x86 emulator at machine
    address 000015d2 that emulates one or more instructions
    of DDD according to the rules of the x86 language such
    that the correctly emulated DDD reaches its own "ret"
    instruction final halt state.




    So?

    Why does there need to be?

    It would only need to be there if you stipulated that you HHH *WAS* a
    correct emulator, but then, as you have proved, it doesn't return an
    answer and thus is not a decider.

    Your problem is you seem to not understand that the question put to H is
    an OBJECTIVE question, not based on what "H sees" but about what is just
    true, and that means just by SOME correct emulator (which will do the
    same as direct execution).

    You are showing that you just fundamentally don't understand the meaning
    of TRUTH, and think it ok to just lie about things.

    You also show you don't understand the basic rules of computation
    theory, and think it ok to just make up your own ideas, which become
    lles when you ignore the instruction that others have given,

    IT just shows that you seem to be incapbable of actually following the
    rules of systems, because you are just naturally rebelious, which is
    what is going to put you into that lake of fire.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Mon May 12 21:39:41 2025
    On 5/11/25 10:57 PM, olcott wrote:
    On 5/11/2025 9:54 PM, dbush wrote:
    On 5/11/2025 10:53 PM, olcott wrote:
    On 5/11/2025 9:42 PM, dbush wrote:
    On 5/11/2025 10:39 PM, olcott wrote:
    On 5/11/2025 9:34 PM, dbush wrote:
    On 5/11/2025 10:30 PM, olcott wrote:
    On 5/11/2025 9:23 PM, Richard Heathfield wrote:
    On 12/05/2025 03:05, olcott wrote:
    On 5/11/2025 8:34 PM, Richard Heathfield wrote:
    On 12/05/2025 02:12, olcott wrote:

    <snip>

    No one here is using any actual reasoning
    in their rebuttals of my work.

    I have already shown several places where your 'work' violates >>>>>>>>>> the rules of its implementation's language standard,

    My compiler disagrees so I can't fix that.

    C compilers are obliged to diagnose syntax errors. If they
    don't, they're not-quite-C compilers. You need to decide whether >>>>>>>> you're writing in C or whether you're not.



    _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]

    When testing the proof-of-concept not one line
    of my code is relevant. The only thing that needs
    be determined is the behavior of DDD under some
    HHH

    Category error.  Algorithm DDD isn't fully defined until algorithm >>>>>> HHH is fully defined.

    So yes the code is relevant.

    Algorithm HHH is fully defined as an x86 emulator
    that emulates one or more steps of DDD according
    to the rules of the x86 language.

    Which means "some HHH" is a category error.  There is only one
    algorithm HHH and one algorithm DDD.


    *You absolutely refuse to get the gist of anything*

    There cannot possibly exist an x86 emulator at machine
    address 000015d2 that emulates one or more instructions
    of DDD

    Changing the input is not allowed.

    I am talking about every element of an infinite set you nitwit.


    None of which get the right answer, as we need to look at each one individually, since they all get different inputs (at least if the input
    is legal, and contains all its code).

    Sorry, you are just proving that you are telling an INFINITE number of LIES.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Mon May 12 21:43:21 2025
    On 5/12/25 11:46 AM, olcott wrote:
    On 5/12/2025 6:47 AM, Richard Damon wrote:
    On 5/11/25 10:30 PM, olcott wrote:
    On 5/11/2025 9:23 PM, Richard Heathfield wrote:
    On 12/05/2025 03:05, olcott wrote:
    On 5/11/2025 8:34 PM, Richard Heathfield wrote:
    On 12/05/2025 02:12, olcott wrote:

    <snip>

    No one here is using any actual reasoning
    in their rebuttals of my work.

    I have already shown several places where your 'work' violates the >>>>>> rules of its implementation's language standard,

    My compiler disagrees so I can't fix that.

    C compilers are obliged to diagnose syntax errors. If they don't,
    they're not-quite-C compilers. You need to decide whether you're
    writing in C or whether you're not.



    _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]

    When testing the proof-of-concept not one line
    of my code is relevant. The only thing that needs
    be determined is the behavior of DDD under some
    HHH that emulates DDD according to the rules of
    the x86 language.

    But then HHH  must do that, and you HHH that answers doesn't.



    Of every x86 emulator at machine address 000015d2
    that correctly emulates 1 or more instructions of
    DDD none of these correctly emulated DDD instances
    ever reaches its own "ret" instruction final halt state.


    But there is no correct x86 emulator at that machine address, as you
    have stipulated that is HHH, which DOES aboft its emulation.

    And the actual criteria doesn't say anything about where the correct
    emulator needs to be, (or even that we use a emulator, we are supposed
    to be looking at the direct execution).

    All you are doing is proving that you are nothing but an i=gnorant
    pathological liar that doesn't care about what is actually the correct
    answer or the correct rules.

    Sorry, you have made you ideas dead to the word by showing how little
    you understand and how little you care about the truth.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Mon May 12 21:44:33 2025
    On 5/12/25 12:03 PM, olcott wrote:
    On 5/12/2025 10:48 AM, dbush wrote:
    On 5/12/2025 11:46 AM, olcott wrote:
    On 5/12/2025 6:47 AM, Richard Damon wrote:
    On 5/11/25 10:30 PM, olcott wrote:
    On 5/11/2025 9:23 PM, Richard Heathfield wrote:
    On 12/05/2025 03:05, olcott wrote:
    On 5/11/2025 8:34 PM, Richard Heathfield wrote:
    On 12/05/2025 02:12, olcott wrote:

    <snip>

    No one here is using any actual reasoning
    in their rebuttals of my work.

    I have already shown several places where your 'work' violates >>>>>>>> the rules of its implementation's language standard,

    My compiler disagrees so I can't fix that.

    C compilers are obliged to diagnose syntax errors. If they don't,
    they're not-quite-C compilers. You need to decide whether you're
    writing in C or whether you're not.



    _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]

    When testing the proof-of-concept not one line
    of my code is relevant. The only thing that needs
    be determined is the behavior of DDD under some
    HHH that emulates DDD according to the rules of
    the x86 language.

    But then HHH  must do that, and you HHH that answers doesn't.



    Of every x86 emulator at machine address 000015d2
    that correctly emulates 1 or more instructions of
    DDD none of these correctly emulated DDD instances
    ever reaches its own "ret" instruction final halt state.



    Changing the input is not allowed.

    Of the infinite set of HHH/DDD pairs that are
    being simultaneously evaluated each DDD has
    its own unique HHH thus nothing has changed
    for this element of the infinite set.


    ??? Each DDD has its own HHH which are all differnt.

    I guess you are trying to say that all the natural numbers are the same.

    Sorry, you are getting dumber and showing how little you understand
    about what you are saying.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Mon May 12 21:48:03 2025
    On 5/11/25 11:32 PM, olcott wrote:
    On 5/11/2025 10:11 PM, Keith Thompson wrote:
    Richard Heathfield <rjh@cpax.org.uk> writes:
    [...]
    ALL C compilers are required to diagnose ALL syntax errors and ALL
    constraint violations.

    Yes, all conforming C compilers are required to do that.  (Well,
    strictly speaking they're only required to issue at least one diagnostic
    for any translation unit that violates a syntax rule or constraint.)

    [...]

    In my experience, Microsoft's C compiler - although not perfect - is
    pretty good at following conformance rules. I'd be surprised to learn
    from a competent source that it misses a syntax error.

    I wouldn't, since few if any C compilers are conforming by default.

    I've just tried 4 different C compilers (gcc, clang, and tcc
    on Ubuntu, MS Visual Studio 2022 on Windows), and none of them
    diagnosed a stray semicolon at file scope *by default*.  gcc and
    clang can be persuaded to diagnose it.  tcc, as far as I can tell,
    cannot; I don't believe it claims to be fully conforming in any mode.
    I wasn't able to get MSVS to diagnose it, but there could easily
    be an option that I'm missing.

    If I wanted to prove something in mathematical logic using C code as
    a vehicle, I personally would try to use fully standard-conforming C.
    I *might* consider using a more lax C-like language, such as the
    language accepted by some C compiler in its default mode -- but I'd
    need a good reason to do that, and I'd want a rigorous definition
    of anything I use that differs from standard C.

    It's possible that olcott's C-like code has well defined behavior
    in the implementation he's using.  If so, I'm not sure there's any
    fundamental reason to use something close to C rather than using C
    itself in an attempted refutation of some well known mathematical
    proof.  (I wouldn't expect either C or something C-like to be a
    good vehicle for such a proof.  I don't think C is defined rigorously
    enough to be useful for such a task, and any C-like language is even
    less so.)

    olcott will likely use this to claim that I support his views.
    He will be wrong.

    [...]


    C code is not as 100% exactingly precise as x86 code.

    _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]

    Which just is not a program, as you have been told, so it is an input
    that CAN NOT be emulated past the call instruction.



    When one or more steps of DDD are correctly emulated
    by any x86 emulator HHH the result is the same as
    this code correctly simulated by a C interpreter.

    void DDD()
    {
      HHH(DDD);
      return;
    }

    I have the "return" statement in there because it
    marks a final halt state that is never reached.

    If a computation stops running for any reason
    besides reaching a final halt state comp theory
    says that this computation never halted. Thus
    DDD emulated by HHH never halts.

    People in this forum have been consistently dishonest
    about this point for three years.


    The computation CAN NOT stop for any reason other than reaching the
    final state.

    The fact that the emulation does, just proves that it isn't a correct emulation.

    You are just showing your total ignorance of the rules of the system you
    are talking about, and that you just don't care, so your words are DEAE
    to anyone with a bit of intelegence, and you are securing your prime
    seats on the trip to the lake of fire.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Mon May 12 21:51:04 2025
    On 5/12/25 11:48 AM, olcott wrote:
    On 5/12/2025 6:51 AM, Richard Damon wrote:
    On 5/11/25 10:09 PM, olcott wrote:
    On 5/11/2025 8:37 PM, Richard Damon wrote:
    On 5/11/25 9:12 PM, olcott wrote:
    On 5/11/2025 8:07 PM, Richard Heathfield wrote:
    On 12/05/2025 00:19, Richard Damon wrote:
    On 5/11/25 5:42 PM, Mr Flibble wrote:

    <snip>

    I am happy with my final solution; I glanced over all your
    responses in this thread and they are all invalid.


    In other words, you are admtting to being happy to be in error.

    He has form for placing a finger in each ear and yelling "I'm
    right I'm right I'm right you're all wrong!"

    There's no talking to 2-year-olds.


    No one here is using any actual reasoning
    in their rebuttals of my work. They rely
    on dogma, misdirection, deflection and the
    strawman error.

    The last three methods are dishonest.


    No, they are responding with rules and definitions from the system
    in question,


    A syntax error reporting by one compiler and considered
    irrelevant by another compiler provides zero evidence
    that DDD correctly emulated by some HHH halts.

    I wasn't talking about "Syntax Errors".

    I was talking about the rules of the field of Computation Theory.


    _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]

    THE ONLY THING THAT SHOWS THIS IS THE IS THE
    COMPLETE SEQUENCE OF EMULATED STEPS WHERE DDD HALTS.

    Which is impossble to do as the above is *NOT* a program, as it fails
    to have all the code that it uses.

    It need not be a program knucklehead.
    Termination analyzers often work on C functions.


    Nope, only PROGRAMS. Now, SOME C funcitons are programs (in the
    computation sense) because they include all there code.

    You are just showing how little you understand what you have read,
    because you just don't know the meaning of the words you used.

    Have you ever ACTUALLY SEEN a paper about a termination analyizer that analyized a non-leaf function, without the actual definition of the
    functions it calls?

    You are just showing why the world will just ignore everything you have
    said, even the few ideas that might of had some truth in them, becuase
    it is just too much to figure it out. Your signal to noise is so
    negative, it isn't worth the effort.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Mon May 12 21:56:39 2025
    On 5/12/25 12:52 PM, olcott wrote:
    On 5/12/2025 11:32 AM, Ben Bacarisse wrote:
    Richard Heathfield <rjh@cpax.org.uk> writes:

    On 11/05/2025 17:29, olcott wrote:
    On 5/11/2025 10:34 AM, Mr Flibble wrote:
    On Sun, 11 May 2025 16:25:14 +0100, Richard Heathfield wrote:

    For a question to be semantically incorrect, it takes more than just >>>>>> you
    and your allies to be unhappy with it.

    For a question to be semantically correct, it takes more than just you >>>>> and
    your allies to be happy with it.

    Your turn, mate.

    /Flibble
    For a polar yes/no question to be proven incorrect
    only requires that both yes and no are the wrong answer.

    Fair enough.

    Definition: YNA - a type of answer that has exactly one of exactly two
    possible values, either 'yes' xor 'no' - not both, not neither, and not
    banana or half-past four.

    The two questions I presented upthread, which I'll now label QA and
    QB, are
    both of type YNA. They are as follows:

    QA: "P is a syntactically correct program in some well-defined
    Turing-complete language. Does P stop when it is applied to this data
    X?"

    Sometimes PO accepts this a yes/no question with a correct answer in
    every case and sometimes he does not.  On those days when he does accept
    it, he asserts (quite unambiguously -- I can post a direct quote or a
    message ID) that no is sometimes the correct answer even when P(X)
    halts.


    The Tarski undefinability theorem totally fails when
    it is understood that every form of the Liar Paradox
    is simply not a truth bearer, thus the Liar Paradox
    must be rejected as not an element of any formal
    system of mathematical logic.

    Nope. You just don't understand the proof.

    In fact, the proof is based on the fact that we MUST reject the Liar
    Paradox, and the existance of a Truth Predicate (as defined) forces us
    (by Godel's proof) to accept it and give it a logic value.

    Of course, that is all above your understand, but that doesn't make it
    wrong, it makes YOU wrong.


    QB: ``Is it possible to write a program that answers QA for arbitrary
    P and
    arbitrary X?"

    For any P and any X, QA has a correct YNA answer. What that answer is
    depends on P and X, but QA(P,X) can correctly answer with one valid YNA
    response or the other.

    But on some days, PO does /not/ accept that there is a correct yes/no
    answer to QA in every case.  On those days, he thinks there is a
    "pathological input" for which there is no correct answer.


    I have dropped my other view that that the halting
    problem counter-example input is malformed because
    its recursive simulation prevents the "do the opposite"
    of whatever its corresponding termination analyzer reports
    is unreachable code.

    This was a very common problem with students.  They so buy into the
    assumption "let H be a TM that decides halting" that they think that H'
    and H^ (to use Linz's notation) also exist and so there really is a
    concrete string of symbols (the encoding of H^ which I write as [H^])
    such that H^([H^]) halts if it doesn't and doesn't halt if it does.

    Of course, there are no pathological inputs like this because H does not
    exist.  For every TM, M, the machines M' and M^ do indeed exist, [M^]
    really is some finite string of symbols and M^([M^]) either halts or it
    does not halt.  But because none of the infinite variety of Ms
    implements the halting function, there is no paradox or pathological
    input anywhere to be seen.

    Aside...  Forgive me for repeatedly replying to you.  It's because I
    know you from comp.lang.c and because you are, I think, new to this
    thread which has been going on for over 20 years.  I think everyone else
    here knows the history, but you might not know what PO has said in the
    past and, anyway, I think it helps to remind everyone that PO has given
    the game away more than once.

    All the recent junk using x86 simulations was once very much clearer.
    He posted a function:

    u32 Halts(u32 P, u32 I)
    {
      static u32* execution_trace;
      slave_state->EIP = P;                    // Function to invoke
      while (!Aborted)
      {
        u32 EIP = slave_state->EIP;            // Instruction to be executed
        DebugStep(master_state, slave_state);  // Execute this instruction >>     PushBack(local_execution_trace_list, EIP);
        Aborted = Needs_To_Be_Aborted(execution_trace, (u32)Halts);
      }
      return 0;  // Does not halt
    END_OF_CODE: // Input has normally terminated
      return 1;
    }

    and explained that 0 (does not halt) is the correct return for the
    classic "confounding input" like so:

       "When we comment out the line of Halts() that tests for its need to
       abort then H_Hat() remains in infinite recursion, proving that its
       abort decision was correct."

    All really clear: Halts is correct because it reports on what some other
    program would do -- the H_Hat constructed from the modified Halts
    function without the like that stops the simulation!

    That was way too clear, so we got all more recent guff and, as far as I
    know, he no loner ties to justify this ruse quite so explicitly.  His
    argument is now that the simulation is correct right up until the point
    when it isn't (as Mike Terry demonstrated quite explicitly).


    Try to show how the "do the opposite" code
    is reachable from DD correctly simulated by HHH.

    int DD()
    {
      int Halt_Status = HHH(DD);
      if (Halt_Status)
        HERE: goto HERE;
      return Halt_Status;
    }


    But it doesn't need to be reachable by HHH's partial simulation, it just
    needs to be reachable by the execution of the function.

    Since that calls the HHH(DD) that *WILL* return 0 (since that *IS* what
    you claim it is "correctly" doing) and that makes DD Halt.

    SInce it halts, HHH was WRONG, and you are shown to be a liar to say it
    was correct. This is not an honest mistake by you, but a reckless
    disregard for the truth, perhaps combined with a mental inability to
    understand the logic of the system, making you just a pathological liar.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Mon May 12 21:59:01 2025
    On 5/12/25 11:22 AM, olcott wrote:
    On 5/11/2025 9:48 AM, Mr Flibble wrote:
    On Sun, 11 May 2025 15:44:44 +0100, Richard Heathfield wrote:

    On 11/05/2025 14:21, Mr Flibble wrote:
    This reframing dissolves the paradox by making the Halting Problem
    itself an ill-posed question.

    "P is a syntactically correct program in some well-defined
    Turing-complete language. Does P stop when it is applied to this data
    X?" is a meaningful and well-formed question. It's not a Carrollian
    question like Olcott's "what time is it, yes or no?" It has a sensible
    answer. Either P stops for X, or it doesn't.

    It's a question that can in many (but not all) cases be answered quickly >>> and easily enough (and correctly) by humans, often requiring no more
    than a brief glimpse. (I say 'not all' only because it is not beyond the >>> wit of mankind to trump up extraordinarily complicated and deliberately
    obfuscated code that might easily defeat a programmer's casual glance.)

    Some simple examples in K&R C:

    main(){}

    main(){for(;;);}

    main(){puts("Hello");}

    #include <stdio.h>
    main(){long c=0;int ch; while((ch = getchar()) !=
    EOF)++c;printf("%ld\n", c);} /* input: the complete works of Shakespeare >>> */

    Any competent C programmer can solve these at a glance - Halts, Loops,
    Halts, Halts, in that order - so why shouldn't a programmer be able to?

    The Halting Problem asks a more complicated question. ``Is it possible
    to write a program that answers the above question for arbitrary P and
    arbitrary X?"

    Again, the question is meaningful and well-formed. It's syntactically
    and grammatically adequate, and anyone claiming not to know what it
    means is laying themselves open to a charge of disingenuousness. The
    only difficult part is the answer, but there's nothing
    self-contradictory or self-referential or paradoxical about the
    question.

    It is insufficient for the question to be syntactically correct, it needs
    to be SEMANTICALLY correct too.

    /Flibble

    A very important point.
    Prolog detects that the Liar Paradox is semantically
    incorrect because it specifies the same infinite
    recursion as the Halting Problem proofs.

    Meaningless, as Prolog can't handle the logic needed for the problem.



    Unlike formal systems that simply get stuck in
    infinite recursion, algorithms are smarter. They
    can detect and reject them.

    but programs *ARE* "Formal Systems".


    Tarski anchored his whole undefinability theorem
    in the nonsense of the Liar Paradox.


    Nope, on the power of Godel's proof of incompleteness, allowing the
    existance of the Truth Predicate to force the system to need to define
    the results of the Liar's Paradox, which means the Truth Predicate can't
    exist.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Mon May 12 22:04:19 2025
    On 5/12/25 11:16 AM, olcott wrote:
    On 5/12/2025 3:53 AM, Mikko wrote:
    On 2025-05-11 13:21:31 +0000, Mr Flibble said:

    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.


    That ignores a key fact

    _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]

    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.


    One or more instructions of the above function
    are correctly emulated by different instances of
    pure x86 emulators at machine address 000015d2.
    None of these correctly emulated DDD instances halts.

    Which 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.


    It is stupidly incorrect to simply assume that the
    pathological relationship between HHH and DDD does
    not change the behavior of DDD when it is proven
    that is does change the behavior.

    WHere did you prove it makes it have any behavior other than what it has?


    HHH1(DDD) has no pathological relationship thus HHH1
    never emulates itself emulating DDD.

    So? That just means it was able to do the task.


    HHH(DDD) has a pathological relationship thus HHH
    emulates itself emulating DDD.

    So? 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.


    It is pretty stupid to think that above two
    behaviors are identical.


    But the behavior of the input WAS the same, the fact that HHH gave up
    before it saw it is just irrelvernt.

    Behavior is not based on the deciders observation (a subjective
    criteria) but on the objective critera of direct execution or the
    complete emulation by a correct UTM.

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