 The distinction between first order logic and second-order logic is easiest to understand in elementary mathematics. Let us consider number theory. The objects of our study are the natural numbers 0, 1, 2,… and their arithmetic. With first order logic we can formulate statements about number theory by using atomic expressions \(x = y,\) \(x+y = z\) and \(x\times y = z\) combined with the propositional operations \(\land,\) \(\neg,\) \(\lor,\) \(\to\) and the quantifiers \(\forall x\) and \(\exists x\). Here the variables x, y, z,… are thought to range over the natural numbers. With second-order logic we can express more: we have variables x, y, z,… as in first order logic for numbers. In addition we have variables X, Y, Z,… for properties of numbers and relations between numbers as well as quantifiers \(\forall X\) and \(\exists X\) for these variables. We have the atomic expressions of first order logic and also new atomic expressions of the form \(X(y_1,\ldots, y_n)\).