Second-order arithmetic

Second-order arithmetic is a theory of arithmetic allowing quantification over the natural numbers as well as sets of natural numbers.

Language
The language of second-order arithmetic consists of numeric terms and set terms. It is an extension of predicate calculus with the following:


 * 0 is a numeric term.
 * There are infinitely many numeric variables \(x_0\), \(x_1\), ... which are numeric terms.
 * If a is a numeric term, then Sa is a numeric term.
 * If a and b are numeric terms, then +ab and ·ab are numeric terms. (For readability these are often written in infix form, but these are not actually part of the language.)
 * There are infinitely many set variables \(X_0\), \(X_1\), ... which are set terms.
 * If a is a numeric term and B is a set term, then ∈aB is an atomic formula.
 * If a and b are numeric terms, then =ab and <ab are atomic formulas (often written in infix form).