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 .)