Russells Paradox and definition of a set in Terry Tao's Analysis I

In his book "Analysis 1", Terry Tao writes (check out page 39):

To summarize so far, among all the objects studied in mathematics, some of the objects happen to be sets; and if $x$ is an object and $A$ is a set, then either $x\in A$ is true or $x\in A$ is false. (If $A$ is not a set, we leave the statement $x\in A$ undefined; for instance, we consider the statement $3\in 4$ to neither be true or false, but simply meaningless, since $4$ is not a set.)

But when discussing Russell's Paradox, he defines on page 53 a set

$\Omega := \{x : x \text{ is a set and }x\notin x\}$.

So he defines that an arbitrary object $x$ is an element of $\Omega$ if and only if $x$ is a set and $x\not\in x$. But this definition does not make any sense, since, according to his definition, we would have $4\in\Omega$ if and only if $4$ is a set and $4\not\in 4$. But $4\not\in 4$ is meaningless, as he says, and therefore "$4$ is a set and $4\not\in 4$" is meaningless as well.

QUESTION:

How to fix this fault?

Note: I understand Russell's Paradox. But the definition

$\Omega := \{x : x \text{ is a set and }x\not\in x\}$

does not satisfy me formally.
My question is exactly how to make it formally work.


I actually asked this question Terry Tao himself. Half an hour ago, I got the following response per email:

A conjunction such as "A and B" is false when A is false, even if B is undefined. For instance, the assertion "x is non-zero and y = 1/x" is false when x=0, even though 1/0 is undefined. (Similar to the concept of lazy evaluation https://en.wikipedia.org/wiki/Lazy_evaluation in programming, one does not need to evaluate all inputs to a statement if one can already determine the truth of that statement from the portion that one is able to evaluate.)

Best,

Terry


Decades ago, in the 1970s, there arose in computer programming the issue of conditions "A and B" where B only makes sense if A is true. B might not have made sense, for example, because if A was false, computing B involved division by zero. Compilers were free to compute B first or to compute B always and computer programs would then crash. The creators of the C programming language invented the symbol && so that A && B meant "A and B where B is only evaluated if A is first found to be true."

Mathematicians are not as dumb and unthinking as computer programs, so they let you write "A and B" even if B only makes sense when A is true. That is what Tao appears to have done.


This is a matter of semantics of the logical connective "and". IN computer languages, for example, $P \mbox{ and } Q$ is evaluated and defined such that evaluating $P$ has to be meaningful, but if $P$ evaluates to "false" then that is the end of the matter and $Q$ is never evaluated.

In that sense the phrase "x is a set and $x \not\in x$" is fine if x is not a set, because the second clause is never considered.

That is a bit unsatisfying (since one would like "and" to be commutative, so one is tempted to modify one's definitions. For example, one can say that $x \in x$ is meaningful for all objects, but can only be true if $x$ happens to be a set. But if you insist that a set can be defined as a collection of all objects having some logical property, then you get in trouble (the paradox).

That is why logic demands a somewhat less flexible panel of axioms as to how one can form a set. There are many choices for the axiom replacing the troublesome one.

As to considering this as a "mistake" by Tao, that is a bit harsh -- the reasoning inevitably leads to a contradiction, so the fact that one step is presented a bit less than fromally seems to be moot.


$\Omega$ should consist of all objects for which its defining property "$x$ is a set and $x\notin x$" is true. In fact this property is well defined for all objects. If $x$ is not a set, then it's false, even though we can't determine whether $x$ contains itself, because the defining property is a conjunction: it becomes false as soon as either half of it is false. If $x$ is a set, then there is no problem.

With different conjunctions of statements that don't always have truth values, you could run into trouble. Already we can't determine the members of $\Omega'=\{x:x\text{ is not a set and }x\notin x\}$. But we can still tell, for instance, that no sets are elements of $\Omega'$!

In practice, it's very rare that we have to worry about undefined properties like these: in part to avoid such paradoxes, we tend to only ask for a property of an object once we've assumed the object is of a type for which that property is defined.