Liste des Groupes | Revenir à s logic |
On 3/10/2025 4:48 AM, Mikko wrote:Have you pbulished that "Minimal Type Theory" or put it to a web page?On 2025-03-09 17:15:13 +0000, olcott said:I created Minimal Type Theory such that self-reference
Is the Liar Paradox True or False?In typical languages of formal logic that is not a syntactically valid
LP := ~True(LP)
expression.
can be expressed concisely and correctly.
Apparently this cannot be expressed concisely and correctly inA self reference cannot be expressed in an uninterpreted formal language.
any formal logic system.
Here is how this is typically done in formal systemsDiagonalixation is not what is "typically" done. It is done when
2.4 Diagonalization, or, “Self-reference”
https://plato.stanford.edu/entries/goedel-incompleteness/#DiaSelRef
LP := ~True(LP) is exactly self-reference without theOnly in languages that allow the expression. Typical formal languages
convoluted mess of the The Diagonalization Lemma.
The other advantage of Minimal Type Theory is thatIt does not make sense to say "The other advantage" when you haven't
it outputs a directed graph of the evaluation sequenceThe library predicate unify_with_occurs_check/2 gives the same result
explicitly showing any cycles that prove the expression
is invalid in the exact same way that
?- unify_with_occurs_check(LP, not(true(LP))).
proves that LP = not(true(LP)). has a cycle in its
evaluation sequence.
Yes, but the unification algorithm of a typical Prolog implementationIn other words you can see the infinite structure of:?- LP = not(true(LP)).Apparently you were using a Prolog implementation that does not check
LP = not(true(LP)).
whether a cyclic data structure is produced.
?- LP = not(true(LP)).
Not checking for cycles This is the default becauseAnd rarely useful.
checking for cycles is too costly.
Only if there is a cycle in the evaluation sequence of 1 = 2.Another Prolog implementationProving a cycle in the evaluation sequence of ?- LP = not(true(LP)).
could say false instead.
?- unify_with_occurs_check(LP, not(true(LP))).For this quesry the only permitted answer is false.
false.
There is nothing infinite there. Everything that can be in a computer'sProving that ?- LP = not(true(LP)). is infinitely recursive.Its infinitely recursive structure makes it neither true nor false.What is that "its" intended to refer to? According to Prolog rules
unify_with_occurs_check(LP, not(true(LP))) is false.
Les messages affichés proviennent d'usenet.