An extension of first-order logic in which the domain is partitioned into distinct types—or sorts—of elements. This structure can be imposed as a means of avoiding category mistakes by typing objects, i.e., by placing Caesar and the number in distinct sorts.
A prominent example is the case of vector spaces, in which vectors and scalars are kept distinct. In the case of classical logic, finitely-sorted logic is typically definable by the addition of unary predicates for each sort along with axioms corresponding to the exhaustive partitioning of the domain into these sorts, i.e., an -sorted logic can be reduced to a one-sorted logic by the axioms:
Quantification over one of the types can then be expressed by restricted quantification, and , where is the predicate corresponding to the relevant sort.