Saying phrases like "This statement is false" does mean you've found some fatal flaw in logic itself and it does not make you sound smart.

It makes you sound like somebody who doesn't know the difference between syntax and semantics.

The real issue...
In order for a statement to have meaning, it must be well defined. Stringing random words together is not enough to provide meaning. There are plenty of syntactically correct yet nonsensical statements. For example, "This statement is blue" is grammatically correct, but it's not well defined (statements don't have color).

This distinction can be blurry in natural language, which do not have clean lex, parse, and symantic resolution phases. Practically, since most of the statements made in non-technical everyday conversation have meaning, it's easy to get in the habit of assuming anything that looks  like a valid statement (ie, is syntactically correct) must have meaning.

Computer languages make the distinction clearer. You can have syntactically correct programs that fail semantic checking. This principle is one reason that compilers languages stop as soon as they detect a semantic error. What would it mean to continue?

Ultimately, the statement "This statement is false" is not well defined, and so it has no meaning.   The gotcha is trying to extract a meaning from a meaningless phrase. It's a perfectly nice collection of random words, but that's it.  Here's why...


Do the semantic resolution. In order to give meaning to a statement, you need to be able to give meaning to each of the words used in the statement.  So to resolve the statement, we need to resolve each of the words.

In the case of "This statement is false", we need to resolve the antecedent for what does "this" refer to?  Here, it refers to the statement that we're in the middle of defining. But that statement is not yet defined, and thus you can't resolve the antecedent.

So you have an unresolved word in the statement.  Thus the statement is not well defined, and so does not have formal meaning.

Self definition is like assuming your statement is correct in order to prove your statement is correct.

In nerd speak, a statement like "This statement is false" fails semantic analysis and so can not be evaluated.

Common misconceptions:
Let me address some common misconceptions that fall out from this.

What about math equations?
You can have math equations where a term appears on both sides. Eg:  X-4 = XS+2
So why is that different than (S= not S) .
It's not. In both cases, the equation represents a relationship. In the first case, there exists an object that satisfies that relationship. In the second case, there does not. So X would have meaning, but S would be nil (representing that the statement is meaningless).

What about recursion?
Defining a term in terms of itself is different than recursion. Take the fibonacci series:
F(n) = F(n-1) + F(n-2), F(0)= 1, F(1) =1
The key differences are that:
- Recursion has base cases.
- F(2) may be defined in terms of  F(1), F(0), but F(2) is not defined is not defined in terms of F(2).
So the function F is a collection of points, each of which is well defined, and therefore the overall function F is well defined.

What about recursion in computer languages?
Computer languages let you define functions recursively. But in this case, function definitions are really just a set of instructions to execute. So the rules are different than definitions in natural language. Take Psuedo-code like:
   function S() { return !S(); }

With this function, there is no antecedent here to resolve. The function is well defined: it just is an infinite loop (that will stackoverflow).

Related topics:

This would be similar to trying to apply a statement with an undefined or ambiguous word.

Playing with undefined statements or creating + exploting ambiguity can also be used as punchlines in jokes (along with indirection). Eg:

Q: What's the longest river in America?
A: Mississippi
Q: How do you spell it?
A: 'i' 't'