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:
The final, completed evaluation of this sentence
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.)