 Let us focus on arithmetic to see what this amounts to. The basic postulates of arithmetic contain the induction axiom. In first-order formalizations of arithmetic, this is formulated as a scheme: for each first-order arithmetical formula of the language of arithmetic with one free variable, one instance of the induction principle is included in the formalization of arithmetic. Elementary cardinality considerations reveal that there are infinitely many properties of natural numbers that are not expressed by a first-order formula. But intuitively, it seems that the induction principle holds for all properties of natural numbers. So in a first-order language, the full force of the principle of mathematical induction cannot be expressed. For this reason, a number of philosophers of mathematics insist that the postulates of arithmetic should be formulated in a second-order language (Shapiro 1991). Second-order languages contain not just first-order quantifiers that range over elements of the domain, but also second-order quantifiers that range over properties (or subsets) of the domain. In full second-order logic, it is insisted that these second-order quantifiers range over all subsets of the domain. If the principles of arithmetic are formulated in a second-order language, then Dedekind’s argument goes through and we have a categorical theory. For similar reasons, we also obtain a categorical theory if we formulate the basic principles of real analysis in a second-order language, and the second-order formulation of set theory turns out to be quasi-categorical.