• Stratifying the Halting Problem: Typed Constraints to Expose and Resolv

    From Mr Flibble@21:1/5 to All on Fri Aug 1 12:40:24 2025
    Proving an algorithm is correct necessitates a stratified type system
    which recognises a category error present in extant halting problem proofs (self referential conflation of a decider with its input); the halting
    problem as currently defined is only appropriate for untyped systems, it
    needs to be constrained to a typed system and when it is all extant
    halting problem proofs relying on diagonalization are rendered moot.

    The two types of programs are:
    (A) halt deciders;
    (B) programs being proven by the decider.

    Type constraints:
    (B) cannot encode (A) due to uni-directionality.

    If (B) is a subset of (A) and cannot use (without violating type
    constraints) a possibly modified copy of (A) (as done in the
    diagonalization proofs) then a new research avenue in the area of
    algorithm analysis and program correctness is opened up, uninhibited by
    the traditional blocker namely Turing's Halting Problem.

    /Flibble

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Mr Flibble on Fri Aug 1 10:01:10 2025
    On 8/1/25 8:40 AM, Mr Flibble wrote:
    Proving an algorithm is correct necessitates a stratified type system
    which recognises a category error present in extant halting problem proofs (self referential conflation of a decider with its input); the halting problem as currently defined is only appropriate for untyped systems, it needs to be constrained to a typed system and when it is all extant
    halting problem proofs relying on diagonalization are rendered moot.

    The two types of programs are:
    (A) halt deciders;
    (B) programs being proven by the decider.

    Type constraints:
    (B) cannot encode (A) due to uni-directionality.

    If (B) is a subset of (A) and cannot use (without violating type
    constraints) a possibly modified copy of (A) (as done in the
    diagonalization proofs) then a new research avenue in the area of
    algorithm analysis and program correctness is opened up, uninhibited by
    the traditional blocker namely Turing's Halting Problem.

    /Flibble

    And the assumption that proof of "correctness" is a necessity, or
    requrement of the system is an error.

    It is provable that more "problems" exist to try to answer, then there
    are programs to try to answer them, and thus, there must exist problems
    that can't be answered by a program.

    The problem with your definitions, is you can't determine if some chunk
    of code IS part of (A), and thus your system can't be used.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mr Flibble@21:1/5 to Richard Damon on Fri Aug 1 14:08:52 2025
    On Fri, 01 Aug 2025 10:01:10 -0400, Richard Damon wrote:

    On 8/1/25 8:40 AM, Mr Flibble wrote:
    Proving an algorithm is correct necessitates a stratified type system
    which recognises a category error present in extant halting problem
    proofs (self referential conflation of a decider with its input); the
    halting problem as currently defined is only appropriate for untyped
    systems, it needs to be constrained to a typed system and when it is
    all extant halting problem proofs relying on diagonalization are
    rendered moot.

    The two types of programs are:
    (A) halt deciders;
    (B) programs being proven by the decider.

    Type constraints:
    (B) cannot encode (A) due to uni-directionality.

    If (B) is a subset of (A) and cannot use (without violating type
    constraints) a possibly modified copy of (A) (as done in the
    diagonalization proofs) then a new research avenue in the area of
    algorithm analysis and program correctness is opened up, uninhibited by
    the traditional blocker namely Turing's Halting Problem.

    /Flibble

    And the assumption that proof of "correctness" is a necessity, or
    requrement of the system is an error.

    It is provable that more "problems" exist to try to answer, then there
    are programs to try to answer them, and thus, there must exist problems
    that can't be answered by a program.

    The problem with your definitions, is you can't determine if some chunk
    of code IS part of (A), and thus your system can't be used.

    I could quite easily design a program verification system which has the
    type stratification I propose allowing the type constraint I have defined
    to be enforced. My universal compiler framework (neos) could easily
    achieve this even if the decider and the input are IN THE SAME SOURCE CODE FILE.

    https://neos.dev

    /Flibble

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mr Flibble@21:1/5 to Richard Damon on Fri Aug 1 14:24:31 2025
    On Fri, 01 Aug 2025 10:22:11 -0400, Richard Damon wrote:

    On 8/1/25 10:08 AM, Mr Flibble wrote:
    On Fri, 01 Aug 2025 10:01:10 -0400, Richard Damon wrote:

    On 8/1/25 8:40 AM, Mr Flibble wrote:
    Proving an algorithm is correct necessitates a stratified type system
    which recognises a category error present in extant halting problem
    proofs (self referential conflation of a decider with its input); the
    halting problem as currently defined is only appropriate for untyped
    systems, it needs to be constrained to a typed system and when it is
    all extant halting problem proofs relying on diagonalization are
    rendered moot.

    The two types of programs are:
    (A) halt deciders;
    (B) programs being proven by the decider.

    Type constraints:
    (B) cannot encode (A) due to uni-directionality.

    If (B) is a subset of (A) and cannot use (without violating type
    constraints) a possibly modified copy of (A) (as done in the
    diagonalization proofs) then a new research avenue in the area of
    algorithm analysis and program correctness is opened up, uninhibited
    by the traditional blocker namely Turing's Halting Problem.

    /Flibble

    And the assumption that proof of "correctness" is a necessity, or
    requrement of the system is an error.

    It is provable that more "problems" exist to try to answer, then there
    are programs to try to answer them, and thus, there must exist
    problems that can't be answered by a program.

    The problem with your definitions, is you can't determine if some
    chunk of code IS part of (A), and thus your system can't be used.

    I could quite easily design a program verification system which has the
    type stratification I propose allowing the type constraint I have
    defined to be enforced. My universal compiler framework (neos) could
    easily achieve this even if the decider and the input are IN THE SAME
    SOURCE CODE FILE.

    https://neos.dev

    /Flibble

    Go ahead, TRY to write a program to determine if a given input is a
    "Halt Decider".

    That has been proven to be impossible.

    Impossible? Partial deciders are a thing, dear, and certainly not
    "impossible".

    /Flibble

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Mr Flibble on Fri Aug 1 10:22:11 2025
    On 8/1/25 10:08 AM, Mr Flibble wrote:
    On Fri, 01 Aug 2025 10:01:10 -0400, Richard Damon wrote:

    On 8/1/25 8:40 AM, Mr Flibble wrote:
    Proving an algorithm is correct necessitates a stratified type system
    which recognises a category error present in extant halting problem
    proofs (self referential conflation of a decider with its input); the
    halting problem as currently defined is only appropriate for untyped
    systems, it needs to be constrained to a typed system and when it is
    all extant halting problem proofs relying on diagonalization are
    rendered moot.

    The two types of programs are:
    (A) halt deciders;
    (B) programs being proven by the decider.

    Type constraints:
    (B) cannot encode (A) due to uni-directionality.

    If (B) is a subset of (A) and cannot use (without violating type
    constraints) a possibly modified copy of (A) (as done in the
    diagonalization proofs) then a new research avenue in the area of
    algorithm analysis and program correctness is opened up, uninhibited by
    the traditional blocker namely Turing's Halting Problem.

    /Flibble

    And the assumption that proof of "correctness" is a necessity, or
    requrement of the system is an error.

    It is provable that more "problems" exist to try to answer, then there
    are programs to try to answer them, and thus, there must exist problems
    that can't be answered by a program.

    The problem with your definitions, is you can't determine if some chunk
    of code IS part of (A), and thus your system can't be used.

    I could quite easily design a program verification system which has the
    type stratification I propose allowing the type constraint I have defined
    to be enforced. My universal compiler framework (neos) could easily
    achieve this even if the decider and the input are IN THE SAME SOURCE CODE FILE.

    https://neos.dev

    /Flibble

    Go ahead, TRY to write a program to determine if a given input is a
    "Halt Decider".

    That has been proven to be impossible.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Mr Flibble on Fri Aug 1 10:24:40 2025
    On 8/1/25 10:08 AM, Mr Flibble wrote:
    On Fri, 01 Aug 2025 10:01:10 -0400, Richard Damon wrote:

    On 8/1/25 8:40 AM, Mr Flibble wrote:
    Proving an algorithm is correct necessitates a stratified type system
    which recognises a category error present in extant halting problem
    proofs (self referential conflation of a decider with its input); the
    halting problem as currently defined is only appropriate for untyped
    systems, it needs to be constrained to a typed system and when it is
    all extant halting problem proofs relying on diagonalization are
    rendered moot.

    The two types of programs are:
    (A) halt deciders;
    (B) programs being proven by the decider.

    Type constraints:
    (B) cannot encode (A) due to uni-directionality.

    If (B) is a subset of (A) and cannot use (without violating type
    constraints) a possibly modified copy of (A) (as done in the
    diagonalization proofs) then a new research avenue in the area of
    algorithm analysis and program correctness is opened up, uninhibited by
    the traditional blocker namely Turing's Halting Problem.

    /Flibble

    And the assumption that proof of "correctness" is a necessity, or
    requrement of the system is an error.

    It is provable that more "problems" exist to try to answer, then there
    are programs to try to answer them, and thus, there must exist problems
    that can't be answered by a program.

    The problem with your definitions, is you can't determine if some chunk
    of code IS part of (A), and thus your system can't be used.

    I could quite easily design a program verification system which has the
    type stratification I propose allowing the type constraint I have defined
    to be enforced. My universal compiler framework (neos) could easily
    achieve this even if the decider and the input are IN THE SAME SOURCE CODE FILE.

    https://neos.dev

    /Flibble

    Note, if you try do define it by trying to match to one given Halt
    decider, then DDD just needs to alter the code of HHH with some
    null-effect change that maintains its responses, and thus defeats the categories.

    All you are showing is a lack of understanding of the power of computing systems.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Mr Flibble on Fri Aug 1 10:48:52 2025
    On 8/1/25 10:24 AM, Mr Flibble wrote:
    On Fri, 01 Aug 2025 10:22:11 -0400, Richard Damon wrote:

    On 8/1/25 10:08 AM, Mr Flibble wrote:
    On Fri, 01 Aug 2025 10:01:10 -0400, Richard Damon wrote:

    On 8/1/25 8:40 AM, Mr Flibble wrote:
    Proving an algorithm is correct necessitates a stratified type system >>>>> which recognises a category error present in extant halting problem
    proofs (self referential conflation of a decider with its input); the >>>>> halting problem as currently defined is only appropriate for untyped >>>>> systems, it needs to be constrained to a typed system and when it is >>>>> all extant halting problem proofs relying on diagonalization are
    rendered moot.

    The two types of programs are:
    (A) halt deciders;
    (B) programs being proven by the decider.

    Type constraints:
    (B) cannot encode (A) due to uni-directionality.

    If (B) is a subset of (A) and cannot use (without violating type
    constraints) a possibly modified copy of (A) (as done in the
    diagonalization proofs) then a new research avenue in the area of
    algorithm analysis and program correctness is opened up, uninhibited >>>>> by the traditional blocker namely Turing's Halting Problem.

    /Flibble

    And the assumption that proof of "correctness" is a necessity, or
    requrement of the system is an error.

    It is provable that more "problems" exist to try to answer, then there >>>> are programs to try to answer them, and thus, there must exist
    problems that can't be answered by a program.

    The problem with your definitions, is you can't determine if some
    chunk of code IS part of (A), and thus your system can't be used.

    I could quite easily design a program verification system which has the
    type stratification I propose allowing the type constraint I have
    defined to be enforced. My universal compiler framework (neos) could
    easily achieve this even if the decider and the input are IN THE SAME
    SOURCE CODE FILE.

    https://neos.dev

    /Flibble

    Go ahead, TRY to write a program to determine if a given input is a
    "Halt Decider".

    That has been proven to be impossible.

    Impossible? Partial deciders are a thing, dear, and certainly not "impossible".

    /Flibble

    But partial deciders don't answer the problem.

    To define your category, you can't use just a partial decider, or you
    don't have your categories.

    Sorry, you are just proving you don't understand what you are talking about.

    Either you can make a complete decider for your category, or you don't
    have them.

    It seems you are admitting that you can't actually fully define your categories, so they don't actually exist.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mr Flibble@21:1/5 to Richard Damon on Fri Aug 1 15:08:58 2025
    On Fri, 01 Aug 2025 10:24:40 -0400, Richard Damon wrote:

    On 8/1/25 10:08 AM, Mr Flibble wrote:
    On Fri, 01 Aug 2025 10:01:10 -0400, Richard Damon wrote:

    On 8/1/25 8:40 AM, Mr Flibble wrote:
    Proving an algorithm is correct necessitates a stratified type system
    which recognises a category error present in extant halting problem
    proofs (self referential conflation of a decider with its input); the
    halting problem as currently defined is only appropriate for untyped
    systems, it needs to be constrained to a typed system and when it is
    all extant halting problem proofs relying on diagonalization are
    rendered moot.

    The two types of programs are:
    (A) halt deciders;
    (B) programs being proven by the decider.

    Type constraints:
    (B) cannot encode (A) due to uni-directionality.

    If (B) is a subset of (A) and cannot use (without violating type
    constraints) a possibly modified copy of (A) (as done in the
    diagonalization proofs) then a new research avenue in the area of
    algorithm analysis and program correctness is opened up, uninhibited
    by the traditional blocker namely Turing's Halting Problem.

    /Flibble

    And the assumption that proof of "correctness" is a necessity, or
    requrement of the system is an error.

    It is provable that more "problems" exist to try to answer, then there
    are programs to try to answer them, and thus, there must exist
    problems that can't be answered by a program.

    The problem with your definitions, is you can't determine if some
    chunk of code IS part of (A), and thus your system can't be used.

    I could quite easily design a program verification system which has the
    type stratification I propose allowing the type constraint I have
    defined to be enforced. My universal compiler framework (neos) could
    easily achieve this even if the decider and the input are IN THE SAME
    SOURCE CODE FILE.

    https://neos.dev

    /Flibble

    Note, if you try do define it by trying to match to one given Halt
    decider, then DDD just needs to alter the code of HHH with some
    null-effect change that maintains its responses, and thus defeats the categories.

    All you are showing is a lack of understanding of the power of computing systems.

    I find it suspicious that you use Olcott's terminology in your reply (DDD
    and HHH): your brain might be frazzled or, a more fun thought, you could
    be an Olcott sockpuppet. As I don't follow Olcott's work that closely I
    am unsure what DDD and HHH refer to, I use H for decider and P for input.

    It would be posssible for neos to disallow P from accessing H
    programmatically, both H's compile time and runtime representations.
    Enforcing type stratification at a language level would not be a difficult modification to neos.

    /Flibble

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Mr Flibble on Fri Aug 1 11:16:01 2025
    On 8/1/25 11:08 AM, Mr Flibble wrote:
    On Fri, 01 Aug 2025 10:24:40 -0400, Richard Damon wrote:

    On 8/1/25 10:08 AM, Mr Flibble wrote:
    On Fri, 01 Aug 2025 10:01:10 -0400, Richard Damon wrote:

    On 8/1/25 8:40 AM, Mr Flibble wrote:
    Proving an algorithm is correct necessitates a stratified type system >>>>> which recognises a category error present in extant halting problem
    proofs (self referential conflation of a decider with its input); the >>>>> halting problem as currently defined is only appropriate for untyped >>>>> systems, it needs to be constrained to a typed system and when it is >>>>> all extant halting problem proofs relying on diagonalization are
    rendered moot.

    The two types of programs are:
    (A) halt deciders;
    (B) programs being proven by the decider.

    Type constraints:
    (B) cannot encode (A) due to uni-directionality.

    If (B) is a subset of (A) and cannot use (without violating type
    constraints) a possibly modified copy of (A) (as done in the
    diagonalization proofs) then a new research avenue in the area of
    algorithm analysis and program correctness is opened up, uninhibited >>>>> by the traditional blocker namely Turing's Halting Problem.

    /Flibble

    And the assumption that proof of "correctness" is a necessity, or
    requrement of the system is an error.

    It is provable that more "problems" exist to try to answer, then there >>>> are programs to try to answer them, and thus, there must exist
    problems that can't be answered by a program.

    The problem with your definitions, is you can't determine if some
    chunk of code IS part of (A), and thus your system can't be used.

    I could quite easily design a program verification system which has the
    type stratification I propose allowing the type constraint I have
    defined to be enforced. My universal compiler framework (neos) could
    easily achieve this even if the decider and the input are IN THE SAME
    SOURCE CODE FILE.

    https://neos.dev

    /Flibble

    Note, if you try do define it by trying to match to one given Halt
    decider, then DDD just needs to alter the code of HHH with some
    null-effect change that maintains its responses, and thus defeats the
    categories.

    All you are showing is a lack of understanding of the power of computing
    systems.

    I find it suspicious that you use Olcott's terminology in your reply (DDD
    and HHH): your brain might be frazzled or, a more fun thought, you could
    be an Olcott sockpuppet. As I don't follow Olcott's work that closely I
    am unsure what DDD and HHH refer to, I use H for decider and P for input.

    It would be posssible for neos to disallow P from accessing H programmatically, both H's compile time and runtime representations. Enforcing type stratification at a language level would not be a difficult modification to neos.

    /Flibble

    But it can't prevent P from accessing a copy of H, that has had a
    non-behavior changing modifcation done to it.

    Since that modified version of H should still be considered a Halt
    Detector, but neos can't determine that, you can't have that as a category.

    This goes to the problem that the final program doesn't include all the meta-information that might have gone into making it.

    For instance, I can make a program that by its construction is provably correct, but if I just give you that program and the initial
    specification, you might not be able to prove it to be correct.

    This is the essence of the incompleteness theorem.

    Since you can't detect that a piece of code uses an algorithm that does
    "halt detection", you can't make that a category to partion your code
    into spaces.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mr Flibble@21:1/5 to Richard Damon on Fri Aug 1 15:36:19 2025
    On Fri, 01 Aug 2025 11:16:01 -0400, Richard Damon wrote:

    On 8/1/25 11:08 AM, Mr Flibble wrote:
    On Fri, 01 Aug 2025 10:24:40 -0400, Richard Damon wrote:

    On 8/1/25 10:08 AM, Mr Flibble wrote:
    On Fri, 01 Aug 2025 10:01:10 -0400, Richard Damon wrote:

    On 8/1/25 8:40 AM, Mr Flibble wrote:
    Proving an algorithm is correct necessitates a stratified type
    system which recognises a category error present in extant halting >>>>>> problem proofs (self referential conflation of a decider with its
    input); the halting problem as currently defined is only
    appropriate for untyped systems, it needs to be constrained to a
    typed system and when it is all extant halting problem proofs
    relying on diagonalization are rendered moot.

    The two types of programs are:
    (A) halt deciders;
    (B) programs being proven by the decider.

    Type constraints:
    (B) cannot encode (A) due to uni-directionality.

    If (B) is a subset of (A) and cannot use (without violating type
    constraints) a possibly modified copy of (A) (as done in the
    diagonalization proofs) then a new research avenue in the area of
    algorithm analysis and program correctness is opened up,
    uninhibited by the traditional blocker namely Turing's Halting
    Problem.

    /Flibble

    And the assumption that proof of "correctness" is a necessity, or
    requrement of the system is an error.

    It is provable that more "problems" exist to try to answer, then
    there are programs to try to answer them, and thus, there must exist >>>>> problems that can't be answered by a program.

    The problem with your definitions, is you can't determine if some
    chunk of code IS part of (A), and thus your system can't be used.

    I could quite easily design a program verification system which has
    the type stratification I propose allowing the type constraint I have
    defined to be enforced. My universal compiler framework (neos) could
    easily achieve this even if the decider and the input are IN THE SAME
    SOURCE CODE FILE.

    https://neos.dev

    /Flibble

    Note, if you try do define it by trying to match to one given Halt
    decider, then DDD just needs to alter the code of HHH with some
    null-effect change that maintains its responses, and thus defeats the
    categories.

    All you are showing is a lack of understanding of the power of
    computing systems.

    I find it suspicious that you use Olcott's terminology in your reply
    (DDD and HHH): your brain might be frazzled or, a more fun thought, you
    could be an Olcott sockpuppet. As I don't follow Olcott's work that
    closely I am unsure what DDD and HHH refer to, I use H for decider and
    P for input.

    It would be posssible for neos to disallow P from accessing H
    programmatically, both H's compile time and runtime representations.
    Enforcing type stratification at a language level would not be a
    difficult modification to neos.

    /Flibble

    But it can't prevent P from accessing a copy of H, that has had a non-behavior changing modifcation done to it.

    Since that modified version of H should still be considered a Halt
    Detector, but neos can't determine that, you can't have that as a
    category.

    This goes to the problem that the final program doesn't include all the meta-information that might have gone into making it.

    For instance, I can make a program that by its construction is provably correct, but if I just give you that program and the initial
    specification, you might not be able to prove it to be correct.

    This is the essence of the incompleteness theorem.

    Since you can't detect that a piece of code uses an algorithm that does
    "halt detection", you can't make that a category to partion your code
    into spaces.

    In general I agree. We have to weigh the limits that computer science
    imposes against the practicalities that software engineering requires.

    /Flibble

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Mr Flibble on Fri Aug 1 11:55:24 2025
    On 8/1/25 11:36 AM, Mr Flibble wrote:
    On Fri, 01 Aug 2025 11:16:01 -0400, Richard Damon wrote:

    On 8/1/25 11:08 AM, Mr Flibble wrote:
    On Fri, 01 Aug 2025 10:24:40 -0400, Richard Damon wrote:

    On 8/1/25 10:08 AM, Mr Flibble wrote:
    On Fri, 01 Aug 2025 10:01:10 -0400, Richard Damon wrote:

    On 8/1/25 8:40 AM, Mr Flibble wrote:
    Proving an algorithm is correct necessitates a stratified type
    system which recognises a category error present in extant halting >>>>>>> problem proofs (self referential conflation of a decider with its >>>>>>> input); the halting problem as currently defined is only
    appropriate for untyped systems, it needs to be constrained to a >>>>>>> typed system and when it is all extant halting problem proofs
    relying on diagonalization are rendered moot.

    The two types of programs are:
    (A) halt deciders;
    (B) programs being proven by the decider.

    Type constraints:
    (B) cannot encode (A) due to uni-directionality.

    If (B) is a subset of (A) and cannot use (without violating type >>>>>>> constraints) a possibly modified copy of (A) (as done in the
    diagonalization proofs) then a new research avenue in the area of >>>>>>> algorithm analysis and program correctness is opened up,
    uninhibited by the traditional blocker namely Turing's Halting
    Problem.

    /Flibble

    And the assumption that proof of "correctness" is a necessity, or
    requrement of the system is an error.

    It is provable that more "problems" exist to try to answer, then
    there are programs to try to answer them, and thus, there must exist >>>>>> problems that can't be answered by a program.

    The problem with your definitions, is you can't determine if some
    chunk of code IS part of (A), and thus your system can't be used.

    I could quite easily design a program verification system which has
    the type stratification I propose allowing the type constraint I have >>>>> defined to be enforced. My universal compiler framework (neos) could >>>>> easily achieve this even if the decider and the input are IN THE SAME >>>>> SOURCE CODE FILE.

    https://neos.dev

    /Flibble

    Note, if you try do define it by trying to match to one given Halt
    decider, then DDD just needs to alter the code of HHH with some
    null-effect change that maintains its responses, and thus defeats the
    categories.

    All you are showing is a lack of understanding of the power of
    computing systems.

    I find it suspicious that you use Olcott's terminology in your reply
    (DDD and HHH): your brain might be frazzled or, a more fun thought, you
    could be an Olcott sockpuppet. As I don't follow Olcott's work that
    closely I am unsure what DDD and HHH refer to, I use H for decider and
    P for input.

    It would be posssible for neos to disallow P from accessing H
    programmatically, both H's compile time and runtime representations.
    Enforcing type stratification at a language level would not be a
    difficult modification to neos.

    /Flibble

    But it can't prevent P from accessing a copy of H, that has had a
    non-behavior changing modifcation done to it.

    Since that modified version of H should still be considered a Halt
    Detector, but neos can't determine that, you can't have that as a
    category.

    This goes to the problem that the final program doesn't include all the
    meta-information that might have gone into making it.

    For instance, I can make a program that by its construction is provably
    correct, but if I just give you that program and the initial
    specification, you might not be able to prove it to be correct.

    This is the essence of the incompleteness theorem.

    Since you can't detect that a piece of code uses an algorithm that does
    "halt detection", you can't make that a category to partion your code
    into spaces.

    In general I agree. We have to weigh the limits that computer science
    imposes against the practicalities that software engineering requires.

    /Flibble

    Right, so you argee that you can't define the categories, so your
    concept just fails.

    Yes, there are alternate discussions about partial deciders and what
    they might be able to handle, but that is outside this topic.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mr Flibble@21:1/5 to Richard Damon on Fri Aug 1 16:04:47 2025
    On Fri, 01 Aug 2025 11:55:24 -0400, Richard Damon wrote:

    On 8/1/25 11:36 AM, Mr Flibble wrote:
    On Fri, 01 Aug 2025 11:16:01 -0400, Richard Damon wrote:

    On 8/1/25 11:08 AM, Mr Flibble wrote:
    On Fri, 01 Aug 2025 10:24:40 -0400, Richard Damon wrote:

    On 8/1/25 10:08 AM, Mr Flibble wrote:
    On Fri, 01 Aug 2025 10:01:10 -0400, Richard Damon wrote:

    On 8/1/25 8:40 AM, Mr Flibble wrote:
    Proving an algorithm is correct necessitates a stratified type >>>>>>>> system which recognises a category error present in extant
    halting problem proofs (self referential conflation of a decider >>>>>>>> with its input); the halting problem as currently defined is only >>>>>>>> appropriate for untyped systems, it needs to be constrained to a >>>>>>>> typed system and when it is all extant halting problem proofs
    relying on diagonalization are rendered moot.

    The two types of programs are:
    (A) halt deciders;
    (B) programs being proven by the decider.

    Type constraints:
    (B) cannot encode (A) due to uni-directionality.

    If (B) is a subset of (A) and cannot use (without violating type >>>>>>>> constraints) a possibly modified copy of (A) (as done in the
    diagonalization proofs) then a new research avenue in the area of >>>>>>>> algorithm analysis and program correctness is opened up,
    uninhibited by the traditional blocker namely Turing's Halting >>>>>>>> Problem.

    /Flibble

    And the assumption that proof of "correctness" is a necessity, or >>>>>>> requrement of the system is an error.

    It is provable that more "problems" exist to try to answer, then >>>>>>> there are programs to try to answer them, and thus, there must
    exist problems that can't be answered by a program.

    The problem with your definitions, is you can't determine if some >>>>>>> chunk of code IS part of (A), and thus your system can't be used. >>>>>>
    I could quite easily design a program verification system which has >>>>>> the type stratification I propose allowing the type constraint I
    have defined to be enforced. My universal compiler framework
    (neos) could easily achieve this even if the decider and the input >>>>>> are IN THE SAME SOURCE CODE FILE.

    https://neos.dev

    /Flibble

    Note, if you try do define it by trying to match to one given Halt
    decider, then DDD just needs to alter the code of HHH with some
    null-effect change that maintains its responses, and thus defeats
    the categories.

    All you are showing is a lack of understanding of the power of
    computing systems.

    I find it suspicious that you use Olcott's terminology in your reply
    (DDD and HHH): your brain might be frazzled or, a more fun thought,
    you could be an Olcott sockpuppet. As I don't follow Olcott's work
    that closely I am unsure what DDD and HHH refer to, I use H for
    decider and P for input.

    It would be posssible for neos to disallow P from accessing H
    programmatically, both H's compile time and runtime representations.
    Enforcing type stratification at a language level would not be a
    difficult modification to neos.

    /Flibble

    But it can't prevent P from accessing a copy of H, that has had a
    non-behavior changing modifcation done to it.

    Since that modified version of H should still be considered a Halt
    Detector, but neos can't determine that, you can't have that as a
    category.

    This goes to the problem that the final program doesn't include all
    the meta-information that might have gone into making it.

    For instance, I can make a program that by its construction is
    provably correct, but if I just give you that program and the initial
    specification, you might not be able to prove it to be correct.

    This is the essence of the incompleteness theorem.

    Since you can't detect that a piece of code uses an algorithm that
    does "halt detection", you can't make that a category to partion your
    code into spaces.

    In general I agree. We have to weigh the limits that computer science
    imposes against the practicalities that software engineering requires.

    /Flibble

    Right, so you argee that you can't define the categories, so your
    concept just fails.

    Yes, there are alternate discussions about partial deciders and what
    they might be able to handle, but that is outside this topic.

    I agree that if P can (using simulation or some other form of semantic analysis) analyse H using a COPY of H and we are dealing with idealistic
    turing machines then, yes, the system fails.

    /Flibble

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Mr Flibble on Fri Aug 1 12:55:28 2025
    On 8/1/25 12:04 PM, Mr Flibble wrote:
    On Fri, 01 Aug 2025 11:55:24 -0400, Richard Damon wrote:

    On 8/1/25 11:36 AM, Mr Flibble wrote:
    On Fri, 01 Aug 2025 11:16:01 -0400, Richard Damon wrote:

    On 8/1/25 11:08 AM, Mr Flibble wrote:
    On Fri, 01 Aug 2025 10:24:40 -0400, Richard Damon wrote:

    On 8/1/25 10:08 AM, Mr Flibble wrote:
    On Fri, 01 Aug 2025 10:01:10 -0400, Richard Damon wrote:

    On 8/1/25 8:40 AM, Mr Flibble wrote:
    Proving an algorithm is correct necessitates a stratified type >>>>>>>>> system which recognises a category error present in extant
    halting problem proofs (self referential conflation of a decider >>>>>>>>> with its input); the halting problem as currently defined is only >>>>>>>>> appropriate for untyped systems, it needs to be constrained to a >>>>>>>>> typed system and when it is all extant halting problem proofs >>>>>>>>> relying on diagonalization are rendered moot.

    The two types of programs are:
    (A) halt deciders;
    (B) programs being proven by the decider.

    Type constraints:
    (B) cannot encode (A) due to uni-directionality.

    If (B) is a subset of (A) and cannot use (without violating type >>>>>>>>> constraints) a possibly modified copy of (A) (as done in the >>>>>>>>> diagonalization proofs) then a new research avenue in the area of >>>>>>>>> algorithm analysis and program correctness is opened up,
    uninhibited by the traditional blocker namely Turing's Halting >>>>>>>>> Problem.

    /Flibble

    And the assumption that proof of "correctness" is a necessity, or >>>>>>>> requrement of the system is an error.

    It is provable that more "problems" exist to try to answer, then >>>>>>>> there are programs to try to answer them, and thus, there must >>>>>>>> exist problems that can't be answered by a program.

    The problem with your definitions, is you can't determine if some >>>>>>>> chunk of code IS part of (A), and thus your system can't be used. >>>>>>>
    I could quite easily design a program verification system which has >>>>>>> the type stratification I propose allowing the type constraint I >>>>>>> have defined to be enforced. My universal compiler framework
    (neos) could easily achieve this even if the decider and the input >>>>>>> are IN THE SAME SOURCE CODE FILE.

    https://neos.dev

    /Flibble

    Note, if you try do define it by trying to match to one given Halt >>>>>> decider, then DDD just needs to alter the code of HHH with some
    null-effect change that maintains its responses, and thus defeats
    the categories.

    All you are showing is a lack of understanding of the power of
    computing systems.

    I find it suspicious that you use Olcott's terminology in your reply >>>>> (DDD and HHH): your brain might be frazzled or, a more fun thought,
    you could be an Olcott sockpuppet. As I don't follow Olcott's work
    that closely I am unsure what DDD and HHH refer to, I use H for
    decider and P for input.

    It would be posssible for neos to disallow P from accessing H
    programmatically, both H's compile time and runtime representations. >>>>> Enforcing type stratification at a language level would not be a
    difficult modification to neos.

    /Flibble

    But it can't prevent P from accessing a copy of H, that has had a
    non-behavior changing modifcation done to it.

    Since that modified version of H should still be considered a Halt
    Detector, but neos can't determine that, you can't have that as a
    category.

    This goes to the problem that the final program doesn't include all
    the meta-information that might have gone into making it.

    For instance, I can make a program that by its construction is
    provably correct, but if I just give you that program and the initial
    specification, you might not be able to prove it to be correct.

    This is the essence of the incompleteness theorem.

    Since you can't detect that a piece of code uses an algorithm that
    does "halt detection", you can't make that a category to partion your
    code into spaces.

    In general I agree. We have to weigh the limits that computer science
    imposes against the practicalities that software engineering requires.

    /Flibble

    Right, so you argee that you can't define the categories, so your
    concept just fails.

    Yes, there are alternate discussions about partial deciders and what
    they might be able to handle, but that is outside this topic.

    I agree that if P can (using simulation or some other form of semantic analysis) analyse H using a COPY of H and we are dealing with idealistic turing machines then, yes, the system fails.

    /Flibble

    P doesn't need to use any form of "analysis", as the field assumes the
    code of programs are available. The programmer of P just needs to look
    at the code of H, and create a copy of it, perhaps modified to pass any
    use of myself checks.

    This ability isn't restricted just to Turing Machines, but in any sort
    of machines that we talk about computability.

    Yes, in a world where code of programs is kept secret, you can't do
    this, but then you can't make them inputs for other programs, so you
    can't build deciders.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ben Bacarisse@21:1/5 to Mr Flibble on Sat Aug 2 01:10:10 2025
    Mr Flibble <flibble@red-dwarf.jmc.corp> writes:

    Proving an algorithm is correct necessitates a stratified type system
    which recognises a category error present in extant halting problem proofs (self referential conflation of a decider with its input); the halting problem as currently defined is only appropriate for untyped systems, it needs to be constrained to a typed system and when it is all extant
    halting problem proofs relying on diagonalization are rendered moot.

    The two types of programs are:
    (A) halt deciders;
    (B) programs being proven by the decider.

    At the risk of falling into the trap that you are deliberately misusing standard terms...

    Type constraints:
    (B) cannot encode (A) due to uni-directionality.

    ... this constraint is always met as (A) is empty so (B) cannot encode
    any element of (A).

    --
    Ben.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mr Flibble@21:1/5 to Ben Bacarisse on Sat Aug 2 00:14:50 2025
    On Sat, 02 Aug 2025 01:10:10 +0100, Ben Bacarisse wrote:

    Mr Flibble <flibble@red-dwarf.jmc.corp> writes:

    Proving an algorithm is correct necessitates a stratified type system
    which recognises a category error present in extant halting problem
    proofs (self referential conflation of a decider with its input); the
    halting problem as currently defined is only appropriate for untyped
    systems, it needs to be constrained to a typed system and when it is
    all extant halting problem proofs relying on diagonalization are
    rendered moot.

    The two types of programs are:
    (A) halt deciders;
    (B) programs being proven by the decider.

    At the risk of falling into the trap that you are deliberately misusing standard terms...

    Type constraints:
    (B) cannot encode (A) due to uni-directionality.

    ... this constraint is always met as (A) is empty so (B) cannot encode
    any element of (A).

    Neat.

    /Flibble

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri Aug 1 20:39:06 2025
    On 8/1/25 8:21 PM, olcott wrote:
    On 8/1/2025 7:10 PM, Ben Bacarisse wrote:
    Mr Flibble <flibble@red-dwarf.jmc.corp> writes:

    Proving an algorithm is correct necessitates a stratified type system
    which recognises a category error present in extant halting problem
    proofs
    (self referential conflation of a decider with its input); the halting
    problem as currently defined is only appropriate for untyped systems, it >>> needs to be constrained to a typed system and when it is all extant
    halting problem proofs relying on diagonalization are rendered moot.

    The two types of programs are:
    (A) halt deciders;
    (B) programs being proven by the decider.

    At the risk of falling into the trap that you are deliberately misusing
    standard terms...

    Type constraints:
    (B) cannot encode (A) due to uni-directionality.

    ... this constraint is always met as (A) is empty so (B) cannot encode
    any element of (A).


    *There is a violated type constraint in the Linz proof*

    Ĥ.q0 ⟨Ĥ⟩ ⊢* Ĥ.embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.∞,
       if Ĥ applied to ⟨Ĥ⟩ halts, and
    Ĥ.q0 ⟨Ĥ⟩ ⊢* Ĥ.embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qn
       if Ĥ applied to ⟨Ĥ⟩ does not halt.

    The "if" statements are incorrect because
    Ĥ is not of the finite string type.

    Who says they need to be?

    That is a specification statement, not a computation statement.

    Remember, this is coming from the specification of the Mathematical
    Halting Funciton, which isn;t limited to finite strings.

    We just need to show how to map those other concepts to finite strings.

    So, there is nothing wrong to define the correct answer in terms of the behavior of a Turing Machine M, when the input given is the finite
    string representaiton WM, the designer of the TM just needs to properly
    define the rules of representation to give him the full details of the algorithm to be decided on.

    If you try to claim the behavior of the input WM doesn't match the
    behavior of the TM M, then the error was in the definition of how you
    make a representation, or the use of that representation system to maek
    WM, both of which were in YOUR control, so they just show you did
    something wrong.


    The Linz proof requires Ĥ.embedded_H to report
    on its own behavior instead of the behavior of
    its input.


    No, it reports on the behavior of the program its input represents, as
    the problem states, that just happens to be itself. Nothing wrong with that.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mikko@21:1/5 to Mr Flibble on Sat Aug 2 10:53:47 2025
    On 2025-08-01 12:40:24 +0000, Mr Flibble said:

    Proving an algorithm is correct necessitates a stratified type system
    which recognises a category error present in extant halting problem proofs (self referential conflation of a decider with its input); the halting problem as currently defined is only appropriate for untyped systems, it needs to be constrained to a typed system and when it is all extant
    halting problem proofs relying on diagonalization are rendered moot.

    No, it does not. A simple logic where everything is on the same level
    and nothing that a stratified system would put on a higher level exists
    at all is sufficient. Finding a proof may be easier and the proof may
    be simpler with a stratified higher order system but they don't extend
    the provability of correctness of algorithms.

    --
    Mikko

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