We began by discussing naive set theory. This is elegant, simple, intuitive, and generally lovely; the only problem is that it leads straight to disaster.
To get naive set theory, we make some small additions to first-order logic. First, we either add a predicate Set() to indicate that something is a set, or we distinguish between two styles of variables, one for anything at all and the other exclusively for sets. Our text chose the latter route, distinguishing between the variables
which can range over anything at all, and the variables
which range only over sets.
Next, we add a single new relation symbol to the language of first-order logic, namely the symbol
to represent set membership. Thus a sentence such as
indicates that the element
is a member of the set
.
Third, we add axioms concerning the logical properties of the set membership relation. In naive set theory, we need to add only two axioms (or more precisely, one axiom and an axiom scheme).
(Note that in the Axiom of Comprehension,
can be replaced by any formula expressible in first-order logic that contains
as a free variable. Also note that
may also contain additional free variables
, in which case the instance of the axiom schema must be prefixed by universal quantifiers
.)