• Defeating the Tarski Undefinability Theorem

    From olcott@polcott333@gmail.com to sci.logic,comp.ai.philosophy,comp.theory on Mon Aug 25 12:54:02 2025
    From Newsgroup: sci.logic

    All that we must do to defeat the Tarski Undefinability Theorem:

    We define the notion of formal system as an extended
    version of Prolog's Facts and Rules. This new system
    can handle arbitrary orders of logic. Encodes Facts
    in formalized natural language.

    The Rules only allow semantic logical entailment from
    Facts. When we do this Tarski's Liar Paradox basis is
    simply rejected as untrue and
    Boolean True(Language L, Expression E) becomes definable.
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Richard Damon@Richard@Damon-Family.org to sci.logic,comp.ai.philosophy,comp.theory on Mon Aug 25 19:16:32 2025
    From Newsgroup: sci.logic

    On 8/25/25 1:54 PM, olcott wrote:
    All that we must do to defeat the Tarski Undefinability Theorem:

    We define the notion of formal system as an extended
    version of Prolog's Facts and Rules. This new system
    can handle arbitrary orders of logic. Encodes Facts
    in formalized natural language.

    In other words, restrict them to very simple systems, too simple to
    support incompleteness or the limitation of the truth predicate.

    That is because prolog can't handle the properties of the Natural Numbers.


    The Rules only allow semantic logical entailment from
    Facts. When we do this Tarski's Liar Paradox basis is
    simply rejected as untrue and
    Boolean True(Language L, Expression E) becomes definable.



    And doesn't allow us to define the Arithmatic of Natural Numbers.

    Sorry, you don't understand the limitations of your logic.
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Mikko@mikko.levanto@iki.fi to sci.logic on Tue Aug 26 13:11:46 2025
    From Newsgroup: sci.logic

    On 2025-08-25 17:54:02 +0000, olcott said:

    All that we must do to defeat the Tarski Undefinability Theorem:

    Bad luck if you must but can't.

    We define the notion of formal system as an extended
    version of Prolog's Facts and Rules. This new system
    can handle arbitrary orders of logic.

    Prolog's system already can. But it cannot handle negations.

    Encodes Facts
    in formalized natural language.

    The Rules only allow semantic logical entailment from
    Facts.

    You can't encode "semantic logical entailment" in the rules.
    Without a formal definition those words are formally nonsense.

    When we do this Tarski's Liar Paradox basis is
    simply rejected as untrue and
    Boolean True(Language L, Expression E) becomes definable.

    As Tarski proved, if True(Language L, Expression E) is definable
    then Liar Paradox is provably true (therefore not rejectable as
    untrue) and provably false, so true is the same as false.
    --
    Mikko

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to sci.logic on Tue Aug 26 10:16:31 2025
    From Newsgroup: sci.logic

    On 8/26/2025 5:11 AM, Mikko wrote:
    On 2025-08-25 17:54:02 +0000, olcott said:

    All that we must do to defeat the Tarski Undefinability Theorem:

    Bad luck if you must but can't.


    I create the basic architecture and others implement it.

    We define the notion of formal system as an extended
    version of Prolog's Facts and Rules. This new system
    can handle arbitrary orders of logic.

    Prolog's system already can. But it cannot handle negations.


    It not that it can't handle negations.
    It handles them differently.
    https://en.wikipedia.org/wiki/Negation_as_failure
    That is the key to avoiding self-referential paradoxes.
    They simply are not derived in the system making them
    untrue in the system.

    LP = "this sentence is not true"
    Boolean True("English", LP)==FALSE
    Boolean True("English", ~LP)==FALSE

    Encodes Facts
    in formalized natural language.

    The Rules only allow semantic logical entailment from
    Facts.

    You can't encode "semantic logical entailment" in the rules.
    Without a formal definition those words are formally nonsense.


    https://plato.stanford.edu/entries/montague-semantics/
    Formalizes natural language semantics syntactically.

    When we do this Tarski's Liar Paradox basis is
    simply rejected as untrue and
    Boolean True(Language L, Expression E) becomes definable.

    As Tarski proved, if True(Language L, Expression E) is definable
    then Liar Paradox is provably true (therefore not rejectable as
    untrue) and provably false, so true is the same as false.


    Not at all. Tarski got confused by this.
    This sentence is not true: "This sentence is not true" is true.

    He never noticed that the Liar Paradox is not a bearer of truth
    and must be rejected on that basis as not an member of any
    logic system. Prolog does notice that:

    ?- LP = not(true(LP)).
    LP = not(true(LP)).

    ?- unify_with_occurs_check(LP, not(true(LP))).
    false.
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Mikko@mikko.levanto@iki.fi to sci.logic on Wed Aug 27 11:28:23 2025
    From Newsgroup: sci.logic

    On 2025-08-26 15:16:31 +0000, olcott said:

    On 8/26/2025 5:11 AM, Mikko wrote:
    On 2025-08-25 17:54:02 +0000, olcott said:

    All that we must do to defeat the Tarski Undefinability Theorem:

    Bad luck if you must but can't.

    I create the basic architecture and others implement it.

    Post again when you have the basic architecture on a web site.

    We define the notion of formal system as an extended
    version of Prolog's Facts and Rules. This new system
    can handle arbitrary orders of logic.

    Prolog's system already can. But it cannot handle negations.

    It not that it can't handle negations.

    It is.

    It handles them differently.

    It handles a different thing.

    https://en.wikipedia.org/wiki/Negation_as_failure
    That is the key to avoiding self-referential paradoxes.
    They simply are not derived in the system making them
    untrue in the system.

    You can define a self-reference. You cant refer to the
    negation of self.

    LP = "this sentence is not true"
    Boolean True("English", LP)==FALSE
    Boolean True("English", ~LP)==FALSE

    There is nothing in Prolog that means '~'.

    Encodes Facts
    in formalized natural language.

    The Rules only allow semantic logical entailment from
    Facts.

    You can't encode "semantic logical entailment" in the rules.
    Without a formal definition those words are formally nonsense.

    https://plato.stanford.edu/entries/montague-semantics/
    Formalizes natural language semantics syntactically.

    You can't formalize all of natural language semantics.

    When we do this Tarski's Liar Paradox basis is
    simply rejected as untrue and
    Boolean True(Language L, Expression E) becomes definable.

    It doesn't be come definable if it isn't already.

    As Tarski proved, if True(Language L, Expression E) is definable
    then Liar Paradox is provably true (therefore not rejectable as
    untrue) and provably false, so true is the same as false.

    Not at all. Tarski got confused by this.
    This sentence is not true: "This sentence is not true" is true.

    No, Tarski got it right when he said that "This sentence is not true"
    is not true. You can't prove that "This sentence is not true" is true.

    He never noticed that the Liar Paradox is not a bearer of truth
    and must be rejected on that basis as not an member of any
    logic system. Prolog does notice that:

    What he used in place of the Liar paradox is a valid sentence that
    can be used in proofs, either as a sentence or as a part of a larger
    sentence.

    ?- LP = not(true(LP)).
    LP = not(true(LP)).

    Note that the word "not" above does not mean the logical negation.

    ?- unify_with_occurs_check(LP, not(true(LP))).
    false.

    Note that the word "not" above does not mean the logical negation.

    That unify_with_occurs_check fails does not prove that the two
    expressions do not mean the same.

    ?- unify_with_occurs_check(LP, true(LP)).
    false.
    --
    Mikko

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to sci.logic on Wed Aug 27 10:27:26 2025
    From Newsgroup: sci.logic

    On 8/27/2025 3:28 AM, Mikko wrote:
    On 2025-08-26 15:16:31 +0000, olcott said:

    On 8/26/2025 5:11 AM, Mikko wrote:
    On 2025-08-25 17:54:02 +0000, olcott said:

    All that we must do to defeat the Tarski Undefinability Theorem:

    Bad luck if you must but can't.

    I create the basic architecture and others implement it.

    Post again when you have the basic architecture on a web site.


    No. The basic architecture requires encoding the
    entire finite set of human general knowledge that
    can be expressed in language in formalized natural
    language. The only inference rule is semantic logical
    entailment.

    This is the same idea as Prolog's Facts and Rules
    as well as negation as failure. The only difference
    is that my system has an enormously greater scope,
    much more knowledge.

    We define the notion of formal system as an extended
    version of Prolog's Facts and Rules. This new system
    can handle arbitrary orders of logic.

    Prolog's system already can. But it cannot handle negations.

    It not that it can't handle negations.

    It is.

    It handles them differently.

    It handles a different thing.

    https://en.wikipedia.org/wiki/Negation_as_failure
    That is the key to avoiding self-referential paradoxes.
    They simply are not derived in the system making them
    untrue in the system.

    You can define a self-reference. You cant refer to the
    negation of self.


    Pathological self reference is rejected by
    unify_with_occurs_check()

    LP =-a "this sentence is not true"
    Boolean True("English", LP)==FALSE
    Boolean True("English", ~LP)==FALSE

    There is nothing in Prolog that means '~'.

    Encodes Facts
    in formalized natural language.

    The Rules only allow semantic logical entailment from
    Facts.

    You can't encode "semantic logical entailment" in the rules.
    Without a formal definition those words are formally nonsense.

    https://plato.stanford.edu/entries/montague-semantics/
    Formalizes natural language semantics syntactically.

    You can't formalize all of natural language semantics.


    Sure you can. Merely extend Montague Grammar.
    If you don't understand Montague Grammar then
    you lack the basis for evaluating this aspect
    of my proposal.

    When we do this Tarski's Liar Paradox basis is
    simply rejected as untrue and
    Boolean True(Language L, Expression E) becomes definable.

    It doesn't be come definable if it isn't already.


    It is definable only within the Prolog like architecture
    that I specified.

    As Tarski proved, if True(Language L, Expression E) is definable
    then Liar Paradox is provably true (therefore not rejectable as
    untrue) and provably false, so true is the same as false.

    Not at all. Tarski got confused by this.
    This sentence is not true: "This sentence is not true" is true.

    No, Tarski got it right when he said that "This sentence is not true"
    is not true.

    He never said that.
    Instead he said the outer sentence is true.
    This sentence is not true: "This sentence is not true".
    and confused himself into believing that True(L,x)
    requires an infinite hierarchy.

    You can't prove that "This sentence is not true" is true.


    I have proven that it is not true because it is not a bearer of truth.

    He never noticed that the Liar Paradox is not a bearer of truth
    and must be rejected on that basis as not an member of any
    logic system. Prolog does notice that:

    What he used in place of the Liar paradox is a valid sentence that
    can be used in proofs, either as a sentence or as a part of a larger sentence.


    No he clearly used the Liar paradox itself.

    It would then be possible to reconstruct the
    antinomy of the liar in the metalanguage, by
    forming in the language itself a sentence x
    such that the sentence of the metalanguage
    which is correlated with x asserts that x is
    not a true sentence.

    https://liarparadox.org/Tarski_247_248.pdf

    ?- LP = not(true(LP)).
    LP = not(true(LP)).

    Note that the word "not" above does not mean the logical negation.

    ?- unify_with_occurs_check(LP, not(true(LP))).
    false.

    Note that the word "not" above does not mean the logical negation.

    That unify_with_occurs_check fails does not prove that the two
    expressions do not mean the same.

    ?- unify_with_occurs_check(LP, true(LP)).
    false.


    It means that LP is not a truth bearer.
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Mikko@mikko.levanto@iki.fi to sci.logic on Thu Aug 28 10:50:00 2025
    From Newsgroup: sci.logic

    On 2025-08-27 15:27:26 +0000, olcott said:

    On 8/27/2025 3:28 AM, Mikko wrote:
    On 2025-08-26 15:16:31 +0000, olcott said:

    On 8/26/2025 5:11 AM, Mikko wrote:
    On 2025-08-25 17:54:02 +0000, olcott said:

    All that we must do to defeat the Tarski Undefinability Theorem:

    Bad luck if you must but can't.

    I create the basic architecture and others implement it.

    Post again when you have the basic architecture on a web site.

    No.

    OK, but then we can't discuss it.
    --
    Mikko

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to sci.logic on Thu Aug 28 10:31:28 2025
    From Newsgroup: sci.logic

    On 8/28/2025 2:50 AM, Mikko wrote:
    On 2025-08-27 15:27:26 +0000, olcott said:

    On 8/27/2025 3:28 AM, Mikko wrote:
    On 2025-08-26 15:16:31 +0000, olcott said:

    On 8/26/2025 5:11 AM, Mikko wrote:
    On 2025-08-25 17:54:02 +0000, olcott said:

    All that we must do to defeat the Tarski Undefinability Theorem:

    Bad luck if you must but can't.

    I create the basic architecture and others implement it.

    Post again when you have the basic architecture on a web site.

    No.

    OK, but then we can't discuss it.


    Prolog already knows to reject the Liar Paradox
    as not a truth-bearer.

    ?- LP = not(true(LP)).
    LP = not(true(LP)).

    ?- unify_with_occurs_check(LP, not(true(LP))).
    false.

    This by itself proves that Tarski was wrong
    for basing his analysis of a the possibility
    of a Boolean True(Language L, Expression E)
    on a non truth bearer.

    It would then be possible to reconstruct the
    antinomy of the liar in the metalanguage, by
    forming in the language itself a sentence x
    such that the sentence of the metalanguage
    which is correlated with x asserts that x
    is not a true sentence.
    https://liarparadox.org/Tarski_247_248.pdf
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Mikko@mikko.levanto@iki.fi to sci.logic on Fri Aug 29 09:42:28 2025
    From Newsgroup: sci.logic

    On 2025-08-28 15:31:28 +0000, olcott said:

    On 8/28/2025 2:50 AM, Mikko wrote:
    On 2025-08-27 15:27:26 +0000, olcott said:

    On 8/27/2025 3:28 AM, Mikko wrote:
    On 2025-08-26 15:16:31 +0000, olcott said:

    On 8/26/2025 5:11 AM, Mikko wrote:
    On 2025-08-25 17:54:02 +0000, olcott said:

    All that we must do to defeat the Tarski Undefinability Theorem:

    Bad luck if you must but can't.

    I create the basic architecture and others implement it.

    Post again when you have the basic architecture on a web site.

    No.

    OK, but then we can't discuss it.

    Prolog already knows to reject the Liar Paradox
    as not a truth-bearer.

    No, it does not. Prolog doesn't identify anything as a "truth-bearer"
    or "non-truth-bearer".

    ?- LP = not(true(LP)).

    The Prolog standard allows an implementation to accept or reject that.
    Most implementations accept.

    LP = not(true(LP)).

    This time the implementation accepted and assigned a value to LP.

    ?- unify_with_occurs_check(LP, not(true(LP))).

    In this case an implementation is required to reject as the result
    of unification would be an expression that contains itself. Whether
    anything is a truth-bearer or not is not checked.

    false.

    Implementation rejected as required.
    --
    Mikko

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to sci.logic on Fri Aug 29 08:56:47 2025
    From Newsgroup: sci.logic

    On 8/29/2025 1:42 AM, Mikko wrote:
    On 2025-08-28 15:31:28 +0000, olcott said:

    On 8/28/2025 2:50 AM, Mikko wrote:
    On 2025-08-27 15:27:26 +0000, olcott said:

    On 8/27/2025 3:28 AM, Mikko wrote:
    On 2025-08-26 15:16:31 +0000, olcott said:

    On 8/26/2025 5:11 AM, Mikko wrote:
    On 2025-08-25 17:54:02 +0000, olcott said:

    All that we must do to defeat the Tarski Undefinability Theorem: >>>>>>>
    Bad luck if you must but can't.

    I create the basic architecture and others implement it.

    Post again when you have the basic architecture on a web site.

    No.

    OK, but then we can't discuss it.

    Prolog already knows to reject the Liar Paradox
    as not a truth-bearer.

    No, it does not. Prolog doesn't identify anything as a "truth-bearer"
    or "non-truth-bearer".

    The code below proves that LP is not a truth
    bearer even if Prolog were to call it an ice
    cream sundae with a cherry on top.

    LP cannot be resolved to a truth value because
    it specifies infinite recursion.


    ?- LP = not(true(LP)).

    The Prolog standard allows an implementation to accept or reject that.
    Most implementations accept.

    LP = not(true(LP)).

    This time the implementation accepted and assigned a value to LP.

    ?- unify_with_occurs_check(LP, not(true(LP))).

    In this case an implementation is required to reject as the result
    of unification would be an expression that contains itself. Whether
    anything is a truth-bearer or not is not checked.

    false.

    Implementation rejected as required.


    Because it specifies infinite recursion.
    Other systems might just get stuck in infinite recursion.

    BEGIN:(Clocksin & Mellish 2003:254)
    Finally, a note about how Prolog matching sometimes differs from the unification used in Resolution. Most Prolog systems will allow you to
    satisfy goals like:
    equal(X, X).
    ?- equal(foo(Y), Y).

    that is, they will allow you to match a term against an uninstantiated
    subterm of itself. In this example, foo(Y) is matched against Y, which
    appears within it. As a result, Y will stand for foo(Y), which is
    foo(foo(Y)) (because of what Y stands for), which is foo(foo(foo(Y))),
    and so on. *So Y ends up standing for some kind of infinite structure* END:(Clocksin & Mellish 2003:254)

    https://www.researchgate.net/publication/350789898_Prolog_detects_and_rejects_pathological_self_reference_in_the_Godel_sentence
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Mikko@mikko.levanto@iki.fi to sci.logic on Sat Aug 30 10:51:25 2025
    From Newsgroup: sci.logic

    On 2025-08-29 13:56:47 +0000, olcott said:

    On 8/29/2025 1:42 AM, Mikko wrote:
    On 2025-08-28 15:31:28 +0000, olcott said:

    On 8/28/2025 2:50 AM, Mikko wrote:
    On 2025-08-27 15:27:26 +0000, olcott said:

    On 8/27/2025 3:28 AM, Mikko wrote:
    On 2025-08-26 15:16:31 +0000, olcott said:

    On 8/26/2025 5:11 AM, Mikko wrote:
    On 2025-08-25 17:54:02 +0000, olcott said:

    All that we must do to defeat the Tarski Undefinability Theorem: >>>>>>>>
    Bad luck if you must but can't.

    I create the basic architecture and others implement it.

    Post again when you have the basic architecture on a web site.

    No.

    OK, but then we can't discuss it.

    Prolog already knows to reject the Liar Paradox
    as not a truth-bearer.

    No, it does not. Prolog doesn't identify anything as a "truth-bearer"
    or "non-truth-bearer".

    The code below proves that LP is not a truth
    bearer even if Prolog were to call it an ice
    cream sundae with a cherry on top.

    Prolog does not call it anything. For Prolog it is first an open
    variable and later possibly a variable bound to a data value.

    LP cannot be resolved to a truth value because
    it specifies infinite recursion.

    Prolog does not even try to resolve LP to a truth value.

    ?- LP = not(true(LP)).

    When the implementation displays the value the recursion is detected and
    the name of the variable is shown instead of the value.

    The Prolog standard allows an implementation to accept or reject that.
    Most implementations accept.

    LP = not(true(LP)).

    This time the implementation accepted and assigned a value to LP.

    ?- unify_with_occurs_check(LP, not(true(LP))).

    In this case an implementation is required to reject as the result
    of unification would be an expression that contains itself. Whether
    anything is a truth-bearer or not is not checked.

    false.

    Implementation rejected as required.

    Because it specifies infinite recursion.

    Yes, but the cause is not reported. The result is the same as it would
    be if the two arguments were bound to incompatible values.

    Other systems might just get stuck in infinite recursion.

    That is possible. In such systems a program that produces a recursive
    structure is often defiend as erroneous even if the system is not
    required to detect the error.
    --
    Mikko

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to sci.logic on Sat Aug 30 10:31:20 2025
    From Newsgroup: sci.logic

    On 8/30/2025 2:51 AM, Mikko wrote:
    On 2025-08-29 13:56:47 +0000, olcott said:

    LP cannot be resolved to a truth value because
    it specifies infinite recursion.

    Prolog does not even try to resolve LP to a truth value.


    Because it specifies infinite recursion.

    Yes, but the cause is not reported. The result is the same as it would
    be if the two arguments were bound to incompatible values.


    ?- LP = not(true(LP)).
    LP = not(true(LP)).

    ?- unify_with_occurs_check(LP, not(true(LP))).
    false.

    Prolog rejects LP as specifying infinite recursion
    thus rejecting the basis of the Tarski Undefinability Theorem

    It would then be possible to reconstruct the
    antinomy of the liar in the metalanguage, by
    forming in the language itself a sentence x
    such that the sentence of the metalanguage
    which is correlated with x asserts that x is
    not a true sentence.
    https://liarparadox.org/Tarski_247_248.pdf

    Other systems might just get stuck in infinite recursion.

    That is possible. In such systems a program that produces a recursive structure is often defiend as erroneous even if the system is not
    required to detect the error.

    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Mikko@mikko.levanto@iki.fi to sci.logic on Sun Aug 31 11:24:58 2025
    From Newsgroup: sci.logic

    On 2025-08-30 15:31:20 +0000, olcott said:

    On 8/30/2025 2:51 AM, Mikko wrote:
    On 2025-08-29 13:56:47 +0000, olcott said:

    LP cannot be resolved to a truth value because
    it specifies infinite recursion.

    Prolog does not even try to resolve LP to a truth value.


    Because it specifies infinite recursion.

    Yes, but the cause is not reported. The result is the same as it would
    be if the two arguments were bound to incompatible values.


    ?- LP = not(true(LP)).
    LP = not(true(LP)).

    ?- unify_with_occurs_check(LP, not(true(LP))).
    false.

    Prolog rejects LP as specifying infinite recursion
    thus rejecting the basis of the Tarski Undefinability Theorem

    Prolog does not say anyathing about an infinite recursion.
    The result is the same for

    ?- unify_with_occurs_check(true(not(LP)), not(true(LP))).

    which does not contain any infinite recursion.

    It would then be possible to reconstruct the
    antinomy of the liar in the metalanguage, by
    forming in the language itself a sentence x
    such that the sentence of the metalanguage
    which is correlated with x asserts that x is
    not a true sentence.
    https://liarparadox.org/Tarski_247_248.pdf

    Your quote omits essential context. In particular the meanng of "then"
    is not clear from the quote. From the omitted context it is clear that
    the meaning is 'if a truth predicate could be defined'.
    --
    Mikko

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to sci.logic on Sun Aug 31 10:21:08 2025
    From Newsgroup: sci.logic

    On 8/31/2025 3:24 AM, Mikko wrote:
    On 2025-08-30 15:31:20 +0000, olcott said:

    On 8/30/2025 2:51 AM, Mikko wrote:
    On 2025-08-29 13:56:47 +0000, olcott said:

    LP cannot be resolved to a truth value because
    it specifies infinite recursion.

    Prolog does not even try to resolve LP to a truth value.


    Because it specifies infinite recursion.

    Yes, but the cause is not reported. The result is the same as it would
    be if the two arguments were bound to incompatible values.


    ?- LP = not(true(LP)).
    LP = not(true(LP)).

    ?- unify_with_occurs_check(LP, not(true(LP))).
    false.

    Prolog rejects LP as specifying infinite recursion
    thus rejecting the basis of the Tarski Undefinability Theorem

    Prolog does not say anyathing about an infinite recursion.
    The result is the same for


    *Yes it does, you just deleted this*
    BEGIN:(Clocksin & Mellish 2003:254)
    Finally, a note about how Prolog matching sometimes differs from the unification used in Resolution. Most Prolog systems will allow you to
    satisfy goals like:
    equal(X, X).
    ?- equal(foo(Y), Y).

    that is, they will allow you to match a term against an uninstantiated
    subterm of itself. In this example, foo(Y) is matched against Y, which
    appears within it. As a result, Y will stand for foo(Y), which is
    foo(foo(Y)) (because of what Y stands for), which is foo(foo(foo(Y))),
    and so on. So Y ends up standing for some kind of infinite structure. END:(Clocksin & Mellish 2003:254)

    Clocksin, W.F. and Mellish, C.S.
    2003. Programming in Prolog Using the ISO Standard Fifth Edition, 254.
    Berlin Heidelberg: Springer-Verlag.

    https://www.researchgate.net/publication/350789898_Prolog_detects_and_rejects_pathological_self_reference_in_the_Godel_sentence

    -a?- unify_with_occurs_check(true(not(LP)), not(true(LP))).

    which does not contain any infinite recursion.

    -a-a It would then be possible to reconstruct the
    -a-a antinomy of the liar in the metalanguage, by
    -a-a forming in the language itself a sentence x
    -a-a such that the sentence of the metalanguage
    -a-a which is correlated with x asserts that x is
    -a-a not a true sentence.
    -a-a https://liarparadox.org/Tarski_247_248.pdf


    Formalized as:
    x ree True if and only if p
    where the symbol 'p' represents the whole sentence x https://liarparadox.org/Tarski_275_276.pdf

    Your quote omits essential context. In particular the meanng of "then"
    is not clear from the quote. From the omitted context it is clear that
    the meaning is 'if a truth predicate could be defined'.

    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Mikko@mikko.levanto@iki.fi to sci.logic on Mon Sep 1 10:46:37 2025
    From Newsgroup: sci.logic

    On 2025-08-31 15:21:08 +0000, olcott said:

    On 8/31/2025 3:24 AM, Mikko wrote:
    On 2025-08-30 15:31:20 +0000, olcott said:

    On 8/30/2025 2:51 AM, Mikko wrote:
    On 2025-08-29 13:56:47 +0000, olcott said:

    LP cannot be resolved to a truth value because
    it specifies infinite recursion.

    Prolog does not even try to resolve LP to a truth value.


    Because it specifies infinite recursion.

    Yes, but the cause is not reported. The result is the same as it would >>>> be if the two arguments were bound to incompatible values.


    ?- LP = not(true(LP)).
    LP = not(true(LP)).

    ?- unify_with_occurs_check(LP, not(true(LP))).
    false.

    Prolog rejects LP as specifying infinite recursion
    thus rejecting the basis of the Tarski Undefinability Theorem

    Prolog does not say anyathing about an infinite recursion.
    The result is the same for

    *Yes it does, you just deleted this*
    BEGIN:(Clocksin & Mellish 2003:254)
    Finally, a note about how Prolog matching sometimes differs from the unification used in Resolution. Most Prolog systems will allow you to satisfy goals like:
    equal(X, X).
    ?- equal(foo(Y), Y).

    that is, they will allow you to match a term against an uninstantiated subterm of itself. In this example, foo(Y) is matched against Y, which appears within it. As a result, Y will stand for foo(Y), which is foo(foo(Y)) (because of what Y stands for), which is foo(foo(foo(Y))),
    and so on. So Y ends up standing for some kind of infinite structure. END:(Clocksin & Mellish 2003:254)

    Clocksin, W.F. and Mellish, C.S.
    2003. Programming in Prolog Using the ISO Standard Fifth Edition, 254. Berlin Heidelberg: Springer-Verlag.

    https://www.researchgate.net/publication/350789898_Prolog_detects_and_rejects_pathological_self_reference_in_the_Godel_sentence


    Clocksin & Mellish merely say what I said above. They don't claim that
    Prolog say anything about an infinite recursion. If the predicate unify_with_occurs_check is used then that predicate checks whether the unification would produce a recursive structure but it also fails if
    no unification is possible, and it does nor tell why it fails. Otherwise
    a Prolog inmplementation is allowed but not required to check whether unification would produce recursion. As I said, both
    ?- unify_with_occurs_check(LP, not(true(LP))).
    and
    ?- unify_with_occurs_check(true(not(LP)), not(true(LP))).
    give the same result.
    --
    Mikko

    --- Synchronet 3.21a-Linux NewsLink 1.2