Let S = {x | x is not an element of x }
The set S doesn't exist. Then, would a proposition such as "The cardinality of S is 1," be true or false?
Equivalently, I could have made a proposition, "the unicorns are red." Would the proposition be false since unicorns don't exist, or would it be true?
Ideally, I'd like a propositional/predicate logic explanation. Thanks in advance for the help.
In normal first-order logic, you cannot refer to something that does not exist. So, for example, you cannot directly say "The cardinality of $S$ is 1." This is because every term, in first-order logic, always refers to an actual object, and so there is no way to make a term for $S$. This is one reason that not every English expression can be translated directly into first-order logic.
What you can do is to use quantifiers and a definition of $S$ to simulate referring to $S$. For example, you can say $$ (\forall z)[ (z = \{ x : x \not \in x\}) \to ( |z| = 1)] $$ or $$ (\exists z)[ z = \{ x : x \not \in x\} \text{ and } |z| = 1] $$
The first of these, with a $\forall$, will come out to be true, because there is no $z$ to match the hypothesis of the implication. The second, with an $\exists$, will come out false, essentially for the same reason.
For the purposes of formalizing mathematics, this system work perfectly well. After all, in mathematics we are interested in objects that do exist. Experience shows that we don't need more than first-order logic allows when we want to write axiom systems for set theory.
However, for formalizing natural language, first-order logic may leave something to be desired. The field of free logic studies logics in which some terms may not denote actual objects - some terms are "undefined", such as $1/0$. In free logic, statements do not have to be true or false, and in particular statements like "$|S| = 1$" will not be true or false, because they are atomic formulas with undefined terms in them.