[Previous] Gobble is Better Than Blue Apron | Home | [Next] Jordan Peterson's Anti-Overreaching Theme

Liar's Paradox Solution

The liar's paradox is an ancient philosophy problem about confusing sentences like, "This sentence is false." If you say it's true, it contradicts itself. If you say it's false, then it seems to be true. People have identified that part of the issue making things weird is that the sentence refers to itself.

To understand it more clearly, I recognized that the sentence is shorthand and wrote out the implied words. It means: "The final, completed evaluation of this sentence is false." In other words, it's asking you to evaluate if the sentence is true or false, and then compare what you come up with to see if it matches "false".

This reveals that it's, in a way, referring to the future. This is a better explanation than the self-reference explanation. Consider the sentence, "Joe loves philosophy; he'd never be an altruist." In this sentence, the word "he" refers to Joe. That's self-reference because the sentence refers to a part of itself; but this self-reference is harmless.

You're supposed to evaluate if the sentence is true or false. And to do that, you're asked to compare two things:

  1. The final, completed evaluation of this sentence

  2. false

But (1) doesn't exist yet at the time you're evaluating the sentence.

At the time you're first evaluating the sentence, (1) is undefined. That's the problem and the source of the "paradox".

Sometimes when you read a sentence, you can't figure out what something means until you finish the rest of the sentence. That's OK. It can be due to forward references or the need for context. The problem is that you need to already know the evaluation of the liar's paradox sentence (from the future) at the time you're creating the evaluation.

In terms of lisp computer code, we could write it something like this:

(equals? (evaluate self) false)

But what is "self"? It's (equals? (evaluate self) false). And what is the "self" in there? It's (equals? (evaluate self) false). Each time you expand the self to its meaning, you get another self that needs expanding to some meaning, and you can never finish expanding everything. So the sentence is poorly defined.

Or we could look at as ruby code with a blatant infinite loop:

def liars_paradox()
  return liars_paradox() == false
end

This is no more paradoxical than any other non-halting program like one that loops with while true.

(This problem has been solved before, e.g. this link makes the same point as my lisp code answer. I don't know how original my English language explanation is. I reinvented these solutions myself rather than reading them.)


Elliot Temple on January 22, 2018

Comments (7)

Are all self-referential sentences poorly defined?

What's the general principle here? Are all sentences that refer to themselves poorly defined?

Consider: "This sentence is six words long."


Anonymous at 9:24 AM on January 23, 2018 | #9461 | reply | quote

I think that one is OK. It doesn't make an infinite loop if you code it. It refers to a fact that exists at the time you're evaluating the sentence.


curi at 12:43 PM on January 23, 2018 | #9467 | reply | quote

Tangent: analyzing the liar paradox with symbolic logic

Independently of the regress issue, the liar paradox can be analyzed with symbolic logic as follows.

Let L stand for the sentence "This sentence is false.".

Now suppose L is meaningful. Then L must be either true or false. Let S stand for the true/false value of L.

The meaning of L can be represented by these two boolean propositions:

(1) If S, then not S.

(2) If not S, then S.

Neither S == true nor S == false satisfies both (1) and (2). Therefore, L is not a meaningful sentence.


Anonymous at 2:51 PM on January 23, 2018 | #9470 | reply | quote

I don't think the boolean logic stuff is clear. Suppose S is true. Does "then" mean "return" and are they done in order? If so, if S is true then it simply returns false. And if S is false, evaluation moves on to (2) and then returns false.


Anonymous at 2:55 PM on January 23, 2018 | #9471 | reply | quote

I intend "If A, then B" as another way of writing "A implies B." There no notion of ordering or time involved. If one thinks of false as 0 and true as 1, then one can think of "A implies B" as meaning the same thing as A <= B. So (1) and (2) together are the same as the expression:

S <= !S and !S <= S (where S is either 0 or 1)


Anonymous at 3:07 PM on January 23, 2018 | #9472 | reply | quote

OK that's a contradiction. But I think you're skipping steps to get there. The translation from the English original to symbols is non-obvious.

Your symbols (in #9470) correspond to English along the lines of:

"If this sentence is true, then this sentence is false; and also, if this sentence is false, then this sentence is true."

But it's non-obvious that that text, which corresponds closely with your symbols, also corresponds accurately to the original text.


Anonymous at 3:25 PM on January 23, 2018 | #9473 | reply | quote

That's fair.

Maybe a more direct way to write it is as follows:

First note that L consists of the assertion that L is false. In general, to write X is false, we write: !X. So, once again letting S be the true/false value of L, we have

S == !S

... which is a contradiction.


Anonymous at 4:01 PM on January 23, 2018 | #9474 | reply | quote

What do you think?

(This is a free speech zone!)