Is this the correct way to encode the Liar Paradox in Prolog?
Liar Paradox in English: "This sentence is not true."
?- LP = not(true(LP)).
LP = not(true(LP)).
?- unify_with_occurs_check(LP, not(true(LP))).
false.
Is this the correct way to encode the Liar Paradox in Prolog?
Liar Paradox in English: "This sentence is not true."
?- LP = not(true(LP)).
LP = not(true(LP)).
?- unify_with_occurs_check(LP, not(true(LP))).
false.
Prolog correctly rejects any expression having the same pathological self referential structure as the Liar Paradox with its unify_with_occurs_check/2.