Set Properties: Formal Semantics of Programming Languages What is the difference between the two notations below?
{x | x (is an element of) X & P(x)}

vs.
X = {x | P(x)}

These both seems to say to me x is in X as long as it abides by property P. The top one is defined as a comprehension and the bottom one is used as a lead into Russle's paradox.

The difference is that $X$ is required to be a set in the first, and in the second it may not be.  It's kind of amazing, but this avoids the classical set-theoretic paradoxes.  The classic Russell paradox $X=\{x|x\not \in x\}$ is a good example.  Now in the first we know we have a set by the power set and separation axioms.  In the second we don't.
