# Signature (logic)

In logic, especially mathematical logic, a **signature** lists and describes the non-logical symbols of a formal language. In universal algebra, a signature lists the operations that characterize an algebraic structure. In model theory, signatures are used for both purposes. They are rarely made explicit in more philosophical treatments of logic.

Formally, a (single-sorted) **signature** can be defined as a triple *σ* = (*S*_{func}, *S*_{rel}, *S*_{const}, ar), where *S*_{func} and *S*_{rel} are disjoint sets not containing any other basic logical symbols, called respectively

A signature with no function symbols is called a **relational signature**, and a signature with no relation symbols is called an **algebraic signature**.^{[1]}
A **finite signature** is a signature such that *S*_{func} and *S*_{rel} are finite. More generally, the **cardinality** of a signature *σ* = (*S*_{func}, *S*_{rel}, *S*_{const}, ar) is defined as |*σ*| = |*S*_{func}| + |*S*_{rel}| + |*S*_{const}|.

The **language of a signature** is the set of all well formed sentences built from the symbols in that signature together with the symbols in the logical system.

In universal algebra the word **type** or **similarity type** is often used as a synonym for "signature". In model theory, a signature *σ* is often called a **vocabulary**, or identified with the (first-order) language *L* to which it provides the non-logical symbols. However, the cardinality of the language *L* will always be infinite; if *σ* is finite then |*L*| will be ℵ_{0}.

As the formal definition is inconvenient for everyday use, the definition of a specific signature is often abbreviated in an informal way, as in:

Sometimes an algebraic signature is regarded as just a list of arities, as in:

Formally this would define the function symbols of the signature as something like *f*_{0} (which is binary), *f*_{1} (which is unary) and *f*_{2} (which is nullary), but in reality the usual names are used even in connection with this convention.

In mathematical logic, very often symbols are not allowed to be nullary,^{[citation needed]} so that constant symbols must be treated separately rather than as nullary function symbols. They form a set *S*_{const} disjoint from *S*_{func}, on which the arity function *ar* is not defined. However, this only serves to complicate matters, especially in proofs by induction over the structure of a formula, where an additional case must be considered. Any nullary relation symbol, which is also not allowed under such a definition, can be emulated by a unary relation symbol together with a sentence expressing that its value is the same for all elements. This translation fails only for empty structures (which are often excluded by convention). If nullary symbols are allowed, then every formula of propositional logic is also a formula of first-order logic.

In the context of first-order logic, the symbols in a signature are also known as the non-logical symbols, because together with the logical symbols they form the underlying alphabet over which two formal languages are inductively defined: The set of *terms* over the signature and the set of (well-formed) *formulas* over the signature.

In a structure, an *interpretation* ties the function and relation symbols to mathematical objects that justify their names: The interpretation of an *n*-ary function symbol *f* in a structure * A* with

*domain*

*A*is a function

*f*:

^{A}*A*→

^{n}*A*, and the interpretation of an

*n*-ary relation symbol is a relation

*R*⊆

^{A}*A*. Here

^{n}*A*

^{n}=

*A*×

*A*× ... ×

*A*denotes the

*n*-fold cartesian product of the domain

*A*with itself, and so

*f*is in fact an

*n*-ary function, and

*R*an

*n*-ary relation.

For many-sorted logic and for many-sorted structures signatures must encode information about the sorts. The most straightforward way of doing this is via **symbol types** that play the role of generalized arities.^{[3]}