# First-order logic

### From Wikipedia, the free encyclopedia

**First-order logic** is a formal logic used in mathematics, philosophy, linguistics, and computer science. It goes by many names, including: **first-order predicate calculus**, the **lower predicate calculus**, and predicate logic. First-order logic is distinguished from propositional logic by its use of quantifiers; each interpretation of first-order logic includes a domain of discourse over which the quantifiers range.

There are many deductive systems for first-order logic that are sound (only deriving correct results) and complete (able to derive any logically valid implication). Although the logical consequence relation is only semideciable, much progress has been made in automated theorem proving in first-order logic. First-order logic also satisfies several metalogical theorems that make it amenable to analysis in proof theory, such as the Löwenheim–Skolem theorem and the compactness theorem.

First-order logic is of great importance to the foundations of mathematics, where it has become the standard formal logic for axiomatic systems. It has sufficient expressive power to formalize two important mathematical theories: Zermelo–Fraenkel (ZFC) set theory and (first-order) Peano arithmetic. However, no axiom system in first order logic is strong enough to fully (categorically) describe infinite structures such as the natural numbers or the real line. Categorical axiom systems for these structures can be obtained in stronger logics such as second-order logic.

## [edit] Introduction

While propositional logic deals with simple declarative propositions, first-order logic additionally covers predicates and quantification.

A predicate resembles a function that returns either True or False. Consider the following sentences: “Socrates is a philosopher”, “Plato is a philosopher”. In propositional logic these are treated as two unrelated propositions, denoted for example by *p* and *q*. In first-order logic, however, the sentences can be expressed in a more parallel manner using the predicate Phil(*a*), which asserts that the object represented by *a* is a philosopher. Thus if *a* represents Socrates then Phil(*a*) asserts the first proposition, *p*; if *a* represents Plato then Phil(*a*) asserts the second proposition, *q*. A key aspect of first-order logic is visible here: the string “Phil” is a syntactic entity which is given semantic meaning by declaring that Phil(*a*) holds exactly when *a* is a philosopher. An assignment of semantic meaning is called an interpretation.

First-order logic allows reasoning about properties that are shared by many objects, through the use of variables. For example, let Phil(*a*) assert that *a* is a philosopher and let Schol(*a*) assert that *a* is a scholar. Then the formula

asserts that if *a* is a philosopher then *a* is a scholar. The symbol is used to denote a conditional (if/then) statement. The hypothesis lies to the left of the arrow and the conclusion to the right. The truth of this formula depends on which object is denoted by *a*, and on the interpretations of “Phil” and “Schol”.

Assertions of the form “for every *a*, if *a* is a philosopher then *a* is a scholar” require both the use of variables and the use of a quantifier. Again, let Phil(*a*) assert *a* is a philosopher and let Schol(*a*) assert that *a* is a scholar. Then the first-order sentence

asserts that no matter what *a* represents, if *a* is a philosopher then *a* is scholar. Here , the universal quantifier, expresses the idea that the claim in parentheses holds for *all* choices of *a*.

To show that the claim “If *a* is a philosopher then *a* is a scholar” is false, one would show there is some philosopher who is not a scholar. This counterclaim can be expressed with the existential quantifier :

Here:

- is the negation operator: is true if and only if Schol(
*a*) is false, in other words if and only if*a*is not a scholar. - is the conjunction operator: asserts that
*a*is a philosopher and also not a scholar.

The predicates Phil(*a*) and Schol(*a*) take only one parameter. First-order logic can also express predicates with more than one parameter. For example, “there is someone who can be fooled every time” can be expressed as:

Here Person(*x*) is interpreted to mean *x* is a person, Time(*y*) to mean that *y* is a moment of time, and Canfool(*x*,*y*) to mean that (person) *x* can be fooled at (time) *y*.

The **range** of the quantifiers is the set of objects that can be used to satisfy them. (In the informal examples in this section, the range of the quantifiers was left unspecified.) In addition to specifying the meaning of predicate symbols such as Person and Time, an interpretation must specify a nonempty set, known as the domain of discourse or universe, as a range for the quantifiers. Thus a statement of the form is said to be true, under a particular interpretation, if there is some object in the domain of discourse of that interpretation that satisfies the predicate that the interpretation uses to assign meaning to the symbol Phil.

## [edit] Syntax

There are two key parts of first order logic. The syntax determines which collections of symbols are legal expressions in first-order logic, while the semantics determine the meanings behind the legal expressions.

### [edit] Alphabet

Unlike natural languages, such as English, the language of first-order logic is completely formal, so that it can be mechanically determined whether a given expression is legal. There are two key types of legal expressions: **terms**, which intuitively represent objects, and **formulas**, which intuitively express predicates that can be true or false. The terms and formulas of first-order logic are strings of **symbols** which together form the **alphabet** of the language. As with all formal languages, the nature of the symbols themselves is outside the scope of formal logic; they are often regarded simply as letters and punctuation symbols.

It is common to divide the symbols of the alphabet into **logical symbols**, which always have the same meaning, and **non-logical symbols**, whose meaning varies by interpretation. For example, the logical symbol always represents “and”; it is never interpreted as “or”. On the other hand, a non-logical predicate symbol such as Phil(*x*) could be interpreted to mean “*x* is a philosopher”, “*x* is a cat”, or any other unary predicate, depending on the interpretation at hand.

#### [edit] Logical symbols

There are several logical symbols in the alphabet, which vary by author but usually include:

- The quantifier symbols and
- The logical connectives: for conjunction, for disjunction, for implication, for biconditional, for negation. In some cases, other logical connective symbols are included. Some authors use or instead of (and similarly for ). This is especially common in contexts where is used for other purposes. Moreover, is sometimes written as a tilde (~), and is sometimes written &, depending on the author.
- Parentheses, brackets, and other punctuation symbols. The choice of such symbols varies depending on context.
- An infinite set of
**variables**, often denoted by lowercase letters at the end of the alphabet*x*,*y*,*z*, … . Subscripts are often used to distinguish variables:*x*_{0},*x*_{1},*x*_{2}, … . - An
**equality symbol**(sometimes,**identity symbol**) =; see the section on equality below.

There are numerous minor variations that may define additional logical symbols:

- Sometimes the truth constants T for “true” and F for “false” are included. Without any such logical operators of valence 0 it is not possible to express these two constants otherwise without using quantifiers.
- Sometimes additional logical connectives, such as the Sheffer stroke (NAND) and exclusive or operators are included.

#### [edit] Non-logical symbols

The non-logical symbols represent predicates (relations), functions and constants on the domain of discourse. For a long time it was standard practice to use a fixed, infinite set of non-logical symbols for all purposes. A more recent practice is to use different non-logical symbols according to the application one has in mind. Therefore it has become necessary to name the set of all non-logical symbols used in a particular application. This choice is made via a **signature**.^{[1]}

The traditional approach is to have only one, infinite, set of non-logical symbols (one signature) for all applications. Consequently, under the traditional approach there is only one language of first-order logic.^{[2]} This approach is still common, especially in philosophically oriented books.

- For every integer
*n*≥ 0 is a collection of*n*–**ary**, or*n*–**place**,**predicate symbols**. Because they represent relations between*n*elements, they are also called**relation symbols**. For each arity*n*we have an infinite supply of them:*P*^{n}_{0},*P*^{n}_{1},*P*^{n}_{2},*P*^{n}_{3}, …

- For every integer
*n*≥ 0 there are infinitely many*n*-ary**function symbols**:*f*^{n}_{0},*f*^{n}_{1},*f*^{n}_{2},*f*^{n}_{3}, …

In contemporary mathematical logic, the signature varies by application. Typical signatures in mathematics are {1, ×} or just {×} for groups, or {0, 1, +, ×, <} for ordered fields. There are no restrictions on the number of non-logical symbols. The signature can be empty, finite, or infinite, even uncountable. Uncountable signatures occur for example in modern proofs of the Löwenheim-Skolem theorem.

In this approach, every non-logical symbol is of one of the following types.

- A
**predicate symbol**(or**relation symbol**) with some**valence**(or**arity**, number of arguments) greater than or equal to 0. These which are often denoted by uppercase letters*P*,*Q*,*R*,… .- Relations of valence 0 can be identified with propositional variables. For example,
*P*, which can stand for any statement. - For example,
*P*(*x*) is a predicate variable of valence 1. One possible interpretation is “*x*is a man”. *Q*(*x*,*y*) is a predicate variable of valence 2. Possible interpretations include “*x*is greater than*y*” and “*x*is the father of*y*“.

- Relations of valence 0 can be identified with propositional variables. For example,
- A
**function symbol**, with some valence greater than or equal to 0. These are are often denoted by lowercase letters*f*,*g*,*h*,… .- Examples:
*f*(*x*) may be interpreted as for “the father of*x*“. In arithmetic, it may stand for “-x”. In set theory, it may stand for “the power set of x”. In arithmetic,*g*(*x*,*y*) may stand for “*x*+*y*“. In set theory, it may stand for “the union of*x*and*y*“. The symbol*a*may stand for Socrates. In arithmetic, it may stand for 0. In set theory, such a constant may stand for the empty set. - Function symbols of valence 0 are called
**constant symbols**, and are often denoted by lowercase letters at the beginning of the alphabet*a*,*b*,*c*,… .

- Examples:

The traditional approach can be recovered in the modern approach by simply specifying the “custom” signature to consist of the traditional sequences of non-logical symbols.

### [edit] Formation rules

The formation rules define the terms and formulas of first order logic. When terms and formulas are represented as strings of symbols, these rules can be used to write a formal grammar for terms and formulas. These rules are generally context-free (each production has a single symbol on the left side), except that the set of symbols may be allowed to be infinite and there may be many start symbols, for example the variables in the case of terms.

#### [edit] Terms

The set of **terms** is inductively defined by the following rules:

**Variables.**Any variable is a term.**Functions.**Any expression*f*(*t*_{1},…,*t*_{n}) of*n*arguments (where each argument*t*_{i}is a term and*f*is a function symbol of valence*n*) is a term.

Only expressions which can be obtained by finitely many applications of rules 1 and 2 are terms. For example, no expression involving a predicate symbol is a term.

#### [edit] Formulas

The set of **formulas** (also called **well-formed formulas**^{[3]} or **wff**s) is inductively defined by the following rules:

**Predicate symbols.**If*P*is an*n*-ary predicate symbol and*t*_{1}, …,*t*_{n}are terms then*P*(*t*_{1},…,*t*_{n}) is a formula.**Equality.**If the equality symbol is considered part of logic, and*t*_{1}and*t*_{2}are terms, then*t*_{1}=*t*_{2}is a formula.**Negation.**If φ is a formula, then φ is a formula.**Binary connectives.**If φ and ψ are formulas, then (φ ψ) is a formula. Similar rules apply to other binary logical connectives.**Quantifiers.**If φ is a formula and*x*is a variable, then and are formulas.

Only expressions which can be obtained by finitely many applications of rules 1–5 are formulas. The formulas obtained from the first two rules are said to be **atomic formulas**.

For example,

is a formula, if *f* is a unary function symbol, *P* a unary predicate symbol, and Q a ternary predicate symbol. On the other hand, is not a formula, although it is a string of symbols from the alphabet.

The role of the parentheses in the definition is to ensure that any formula can only be obtained in one way by following the inductive definition (in other words, there is a unique parse tree for each formula). This property is known as unique readability of formulas. There are many conventions for where parentheses are used in formulas. For example, some authors use colons or full stops instead of parentheses, or change the places in which parentheses are inserted. Each author’s particular definition must be accompanied by a proof of unique readability.

#### [edit] Notational conventions

For convenience, conventions have been developed about the precedence of the logical operators, to avoid the need to write parentheses in some cases. These rules are similar to the order of operations in arithmetic. A common convention is:

- is evaluated first
- and are evaluated next
- Quantifiers are evaluated next
- is evaluated last.

Moreover, extra punctuation not required by the definition may be inserted to make formulas more clear to readers. Thus the formula

would be equivalent to

In some fields, it is common to use infix notation for binary relations and functions, instead of the prefix notation defined above. For example, in arithmetic, one typically writes “2 + 2 = 4” instead of “=(+(2,2),4)”. It is common to regard formulas in infix notation as abbreviations for the corresponding formulas in prefix notation.

The definitions above use infix notation for binary connectives such as . A less common convention is Polish notation, in which one writes , , and so on in front of their arguments rather than between them. This convention allows all punctuation symbols to be discarded. Polish notation is compact and elegant, but rare because it is hard for humans to read it. In Polish notation, the formula

becomes

### [edit] Example

In mathematics the language of ordered abelian groups has one constant 0, one unary function −, one binary function +, and one binary relation ≤. Then:

- +(
*x*,*y*) and +(*x*, +(*y*, −(*z*))) are**terms**. These are usually written as*x*+*y*,*x*+*y*−*z*. - +(
*x*,*y*) = 0 and ≤(+(*x*, +(*y*, −(*z*))), +(*x*,*y*)) are**atomic formulas**. These are usually written as*x*+*y*= 0 and*x*+*y*−*z*≤*x*+*y*. - (
*x**y*≤(+(*x*,*y*),*z*)*x*+(*x*,*y*) = 0) is a**formula**, which is usually written as (*x**y**x*+*y*≤*z*) (*x**x*+*y*= 0).

### [edit] Free and bound variables

In a formula, a variable may occur **free** or **bound**. Intuitively, a variable is free in a formula if it is not quantified: in , variable *x* is free while *y* is bound. The free and bound variables of a formula are defined inductively as follows.

**Atomic formulas.**If φ is an atomic formula then*x*is free in φ if and only if*x*occurs in φ, and*x*is never bound in φ.**Negation.***x*is free in φ if and only if*x*is free in φ.*x*is bound in φ if and only if*x*is bound in φ.**Binary connectives.***x*is free in (φ ψ) if and only if*x*is free in either φ or ψ.*x*is bound in (φ ψ) if and only if*x*is bound in either φ or ψ. Th same rule applies to any other binary connective in place of .**Quantifiers.***x*is free in*y*φ if and only if*x*is free in φ and*x*is a different symbol than*y*. Also,*x*is bound in*y*φ if and only if*x*is*y*or*x*is bound in φ. The same rule holds with in place of .

For example, in *x* *y* (*P*(*x*) *Q*(*x*,*f*(*x*),*z*)), *x* and *y* are bound variables, *z* is a free variable, and *w* is neither because it does not occur in the formula.

Freeness and boundness can be also specialized to specific occurrences of variables in a formula. For example, in , the first occurrence of *x* is free while the second is bound. In other words, the *x* in *P*(*x*) is free while the *x* in is bound.

A formula with no free variables is called a **sentence**. These are the formulas that will have well-defined truth values under an interpretation. For example, whether a formula such as Phil(*x*) is true must depend on what *x* represents. But the sentence will be either true or false in a given interpretation.

## [edit] Semantics

An **interpretation** of a first-order language assigns a denotation to all non-logical constants in that language. It also determines a domain of discourse that specifies the range of the quantifiers. The result is that each term is assigned an object that it represents, and each sentence is assigned a truth value. In this way, an interpretation provides semantic meaning to the terms and formulas of the language. The study of the interpretations of formal languages is called formal semantics.

The domain of discourse *D* is a nonempty set of “objects” of some kind. Intuitively, a first-order formula is a statement about these objects; for example, states the existence of an object *x* such that the predicate *P* is true where referred to it. The domain of discourse is the set of considered objects. For example, one can take *D* to be the set of integer numbers.

The interpretation of a function symbol is a function. For example, if the domain of discourse consists of integers, a function symbol *f* of arity 2 can be interpreted as the function that gives the sum of its arguments. In other words, the symbol *f* is associated with the function *I(f)* which, in this interpretation, is addition.

The interpretation of a constant symbol is a function from the one-element set *D*^{0} to *D*, which can be simply identified with an object in *D*. For example, an interpretation may assign the value *I*(*c*) = 10 to the constant symbol *c*.

The interpretation of an *n*-ary predicate symbol is a set of *n*-tuples of elements of the domain of discourse. This means that, given an interpretation, a predicate symbol, and *n* elements of the domain of discourse, one can tell whether the predicate is true of those elements according to the given interpretation. For example, an interpretation *I(P)* of a binary predicate symbol *P* may be the set of pairs of integers such that the first one is less than the second. According to this interpretation, the predicate *P* would be true if its first argument is less than the second.

### [edit] First-order structures

The most common way of specifying an interpretation (especially in mathematics) is to specify a **structure** (also called a **model**; see below). The structure consists of a nonempty set *D* that forms the domain of discourse and an interpretation *I* of the non-logical terms of the signature. This interpretation is itself a function:

- Each function symbol
*f*of arity*n*is assigned a function*I(f)*from*D*^{n}to*D*. In particular, each constant symbol of the signature is assigned an individual in the domain of discourse. - Each predicate symbol
*P*of arity*n*is assigned a relation*I(P)*over*D*^{n}or, equivalently, a function from*D*^{n}to {*t**r**u**e*,*f**a**l**s**e*}.

### [edit] Evaluation of truth values

A formula evaluates to true or false given an interpretation, and a **variable assignment** μ that associates an element of the domain of discourse with each variable. The reason that a variable assignment is required is to give meanings to formulas with free variables, such as *y* = *x*. The truth value of this formula changes depending on whether *x* and *y* denote the same individual.

First, the variable assignment μ can be extended to all terms of the language, with the result that each term maps to a single element of the domain of discourse. The following rules are used to make this assignment:

**Variables.**Each variable*x*evaluates to μ(*x*)**Functions.**Given terms that have been evaluated to elements of the domain of discourse, and a*n*-ary function symbol*f*, the term evaluates to .

Next, each formula is assigned a truth value. The inductive definition used to make this assignment is called the T-schema.

**Atomic formulas (1).**A formula is associated the value true or false depending on whether , where are the evaluation of the terms and*I*(*P*) is the interpretation of*P*, which by assumption is a subset of*D*^{n}.**Atomic formulas (2).**A formula*t*_{1}=*t*_{2}is assigned true if*t*_{1}and*t*_{2}evaluate to the same object of the domain of discourse (see the section on equality below).**Logical connectives.**A formula in the form , , etc. is evaluated according to the truth table for the connective in question, as in propositional logic.**Existential quantifiers.**A formula is true according to*M*and μ if there exists an evaluation μ’ of the variables that only differs from μ regarding the evaluation of*x*and such that φ is true according to the interpretation*M*and the variable assignment μ’. This formal definition captures the idea that is true if and only if there is a way to choose a value for*x*such that φ(*x*) is satisfied.**Universal quantifiers.**A formula is true according to*M*and μ if φ(*x*) is true for every pair composed by the interpretation*M*and some variable assignment μ’ that differs from μ only on the value of*x*. This captures the idea that is true if every possible choice of a value for*x*causes φ(*x*) to be true.

If a formula does not contain free variables, and so is a sentence, then the initial variable assignment does not affect its truth value. In other words, a sentence is true according to *M* and μ if and only if is true according to *M* and any other variable assignment μ’.

There is a second common approach to defining truth values that does not rely on variable assignment functions. Instead, given an interpretation *M*, one first adds to the signature a collection of constant symbols, one for each element of the domain of discourse in *M*; say that for each *d* in the domain the constant symbol *c*_{d} is fixed. The interpretation is extended so that each new constant symbol is assigned to its corresponding element of the domain. One now defines truth for quantified formulas syntactically, as follows:

**Existential quantifiers (alternate).**A formula is true according to*M*if there is some*d*in the domain of discourse such that φ(*c*_{d}) holds. Here φ(*c*_{d}) is the result of substituting*c*_{d}for every free occurrence of*x*in φ.**Universal quantifiers (alternate).**A formula is true according to*M*if, for every*d*in the domain of discourse, φ(*c*_{d}) is true according to*M*.

This alternate approach gives exactly the same truth values to all sentences as the approach via variable assignments.

### [edit] Validity, satisfiability, and logical consequence

If a sentence φ evaluates to True under a given interpretation *M*, one says that *M* **satisfies** φ; this is denoted . A sentence is **satisfiable** if there is some interpretation under which it is true.

Satisfiability of formulas with free variables is more complicated, because an interpretation on its own does not determine the truth value of such a formula. The most common convention is that a formula with free variables is said to be satisfied by an interpretation if the formula remains true regardless which individuals from the domain of discourse are assigned to its free variables. This has the same effect as saying that a formula is satisfied if and only if its universal closure is satisfied.

A formula is **logically valid** (or simply **valid**) if it is true in every interpretation. These formulas play a role similar to tautologies in propositional logic.

A formula φ is a **logical consequence** of a formula ψ if every interpretation that makes ψ true also makes φ true. In this case one says that φ is logically implied by ψ.

### [edit] Algebraizations

An alternate approach to the semantics of first-order logic proceeds via abstract algebra. This approach generalizes the Lindenbaum–Tarski algebras of propositional logic. There are three ways of eliminating quantified variables from first-order logic, that do not involve replacing quantifiers with other variable binding term operators:

- Cylindric algebra, by Alfred Tarski and his coworkers;
- Polyadic algebra, by Paul Halmos;
- Predicate functor logic, mainly due to Willard Quine.

These algebras are all lattices that properly extend the two-element Boolean algebra.

Tarski and Givant (1987) showed that the fragment of first-order logic that has no atomic sentence lying in the scope of more than three quantifiers, has the same expressive power as relation algebra. This fragment is of great interest because it suffices for Peano arithmetic and most axiomatic set theory, including the canonical ZFC. They also prove that first-order logic with a primitive ordered pair is equivalent to a relation algebra with two ordered pair projection functions.

### [edit] First-order theories, models, and elementary classes

A **first-order theory** consists of a set of axioms in a particular first-order signature. The set of axioms is often finite or recursively enumerable, in which case the theory is called **effective**. Some authors require theories to also include all logical consequences of the axioms.

A first-order structure that satisfies all sentences in a given theory is said to be a **model** of the theory. An **elementary class** is the set of all structures satisfying a particular theory. These classes are a main subject of study in model theory.

Many theories have an intended interpretation, a certain model that is kept in mind when studying the theory. For example, the intended interpretation of Peano arithmetic consists of the usual natural numbers with their usual operations. However, the Löwenheim–Skolem theorem shows that most first-order theories will also have other, nonstandard models.

A theory is **consistent** if it is not possible to prove a contradiction from the axioms of the theory. A theory is **complete** if, for every formula in its signature, either that formula or its negation is a logical consequence of the axioms of the theory. Gödel’s incompleteness theorem shows that effective first-order theories that include a sufficient portion of the theory of the natural numbers can never be both consistent and complete.

### [edit] Empty domains

The definition above requires that the domain of discourse of any interpretation must be a nonempty set. There are settings, such as free logic, where empty domains are permitted. However, these cause several difficulties:

- Many common rules of inference are only valid when the domain of discourse is required to be nonempty. One example is the rule stating that implies when
*x*is not a free variable in φ. This rule, which is used to put formulas into prenex normal form, is sound in nonempty domains, but unsound if the empty domain is permitted. - The definition of truth in an interpretation that uses a variable assignment function cannot work with empty domains, because there are no variable assignment functions whose range is empty. (Similarly, one cannot assign interpretations to constant symbols.) This truth definition requires that one must select a variable assignment function (μ above) before truth values for even atomic formulas can be defined. Then the truth value of a sentence is defined to be its truth value under any variable assignment, and it is proved that this truth value does not depend on which assignment is chosen. This technique does not work if there are no assignment functions at all; it must be changed to accommodate empty domains.

When the empty domain is permitted, it must often be treated as a special case. Most authors, however, simply exclude the empty domain by definition.

## [edit] Deductive systems

A **deductive system** is used to demonstrate, on a purely syntactic basis, that one formula is a logical consequence of another formula. There are many such systems for first-order logic, including Hilbert-style deductive systems, natural deduction, the sequent calculus, the tableaux method, and resolution. These share the common property that a deduction is a finite syntactic object; the format of this object, and the way it is constructed, vary widely. These finite deductions themselves are often called **derivations** in proof theory. They are also often called proofs, but are completely formalized unlike natural-language mathematical proofs.

A deductive system is **sound** if any formula that can be derived in the system is logically valid. Conversely, a deductive system is **complete** if every logically valid formula is derivable. All of the systems discussed in this article are both sound and complete. They also share the property that it is possible to effectively verify that a purportedly valid deduction is actually a deduction; such deduction systems are called **effective**.

A key property of deductive systems is that they are purely syntactic, so that derivations can be verified without considering any interpretation. Thus a sound argument is correct in every possible interpretation of the language, regardless whether that interpretation is about mathematics, economics, or some other area.

In general, logical consequence in first-order logic is only semidecidable: if a sentence A logically implies a sentence B then this can be discovered (for example, by searching for a proof until one is found, using some effective, sound, complete proof system). However, if A does not logically imply B, this does not mean that A logically implies the negation of B. There is no effective procedure that, given formulas A and B, always correctly decides whether A logically implies B.

### [edit] Rules of inference

A **rule of inference** states that, given a particular formula (or set of formulas) with a certain property as a hypothesis, another specific formula (or set of formulas) can be derived as a conclusion. The rule is sound (or truth-preserving) if it preserves validity in the sense that whenever any interpretation satisfies the hypothesis, that interpretation also satisfies the conclusion.

For example, one common rule of inference is the **rule of substitution**. If *t* is a term and φ is a formula possibly containing the variable *x*, then φ[*t*/*x*] (often denoted φ[*x*/*t*]) is the result of replacing all free instances of *x* by *t* in φ. The substitution rule states that for any φ and any term *t*, one can conclude φ[*t*/*x*] from φ provided that no free variable of *t* becomes bound during the substitution process. (If some free variable of *t* becomes bound, then to substitute *t* for *x* it is first necessary to change the bound variables of φ to differ from the free variables of *t*.)

To see why the restriction on bound variables is necessary, consider the logically valid formula φ given by , in the signature of (0,1,+, ×,=) of arithmetic. If *t* is the term “x + 1”, the formula φ[*t*/*y*] is , which will be false in many interpretations. The problem is that the free variable *x* of *t* became bound during the substitution. The intended replacement can be obtained by renaming the bound variable *x* of φ to something else, say *z*, so that the formula after substitution is , which is again logically valid.

The substitution rule demonstrates several common aspects of rules of inference. It is entirely syntactical; one can tell whether it was correctly applied without appeal to any interpretation. It has (syntactically-defined) limitations on when it can be applied, which must be respected to preserve the correctness of derivations. Moreover, as is often the case, these limitations are necessary because of interactions between free and bound variables that occur during syntactic manipulations of the formulas involved in the inference rule.

### [edit] Hilbert-style systems and natural deduction

A deduction in a Hilbert-style deductive system is a list of formulas, each of which is a **logical axiom**, a hypothesis that has been assumed for the derivation at hand, or follows from previous formulas via a rule of inference. The logical axioms consist of several axiom schemes of logically valid formulas; these encompass a significant amount of propositional logic. The rules of inference enable the manipulation of quantifiers. Typical Hilbert-style systems have a small number of rules of inference, along with several infinite schemes of logical axioms. It is common to have only modus ponens and universal generalization as rules of inference.

Natural deduction systems resemble Hilbert-style systems in that a deduction is a finite list of formulas. However, natural deduction systems have no logical axioms; they compensate by adding additional rules of inference that can be used to manipulate the logical connectives in formulas in the proof.

### [edit] Sequent calculus

The sequent calculus was developed to study the properties of natural deduction systems. Instead of working with one formula at a time, it uses **sequents**, which are expressions of the form

where A_{1}, …, A_{n}, B_{1}, …, B_{k} are formulas and the turnstile symbol is used as punctuation to separate the two halves. Intuitively, a sequent expresses the idea that implies .

### [edit] Tableaux method

Unlike the methods just described, the derivations in the tableaux method are not lists of formulas. Instead, a derivation is a tree of formulas. To show that a formula A is provable, the tableaux method attempts to demonstrate that the negation of A is unsatisfiable. The tree of the derivation has at its root; the tree branches in a way that reflects the structure of the formula. For example, to show that is unsatisfiable requires showing that C and D are each unsatisfiable; the corresponds to a branching point in the tree with parent and children C and D.

### [edit] Resolution

The resolution rule is a single rule of inference that, together with unification, is sound and complete for first-order logic. As with the tableaux method, a formula is proved by showing that the negation of the formula is unsatisfiable. Resolution is commonly used in automated theorem proving.

The resolution method works only with formulas that are disjunctions of atomic formulas; arbitrary formulas must first be converted to this form through Skolemization. The resolution rule states that from the hypotheses and , the conclusion can be obtained.

### [edit] Provable identities

The following sentences can be called “identities” because the main connective in each is the biconditional.

- (where
*x*must not occur free in*P*) - (where
*x*must not occur free in*P*)

## [edit] Equality and its axioms

There are several different conventions for using equality (or identity) in first-order logic. The most common convention, known as **first-order logic with equality**, includes the equality symbol as a primitive logical symbol which is always interpreted as the real equality relation between members of the domain of discourse. This approach also adds certain axioms about equality to the deductive system employed. These equality axioms are:

**Reflexivity**. For each variable*x*,*x*=*x*.**Substitution for functions.**For all variables*x*and*y*, and any function symbol*f*,*x*=*y*→*f*(…,*x*,…) =*f*(…,*y*,…).

**Substitution for formulas**. For any variables*x*and*y*and any formula φ(*x*), if φ’ is obtained by replacing any number of free occurrences of*x*in φ with*y*, such that these remain free occurrences of*y*, then*x*=*y*→ (φ → φ’).

These are axiom schemes, each of which specifies an infinite set of axioms. The third scheme is known as **Leibniz’s law**, “the principle of substitutivity”, “the indiscernibility of identicals”, or “the replacement property”. The second scheme, involving the function symbol *f*, is (equivalent to) a special case of the third scheme, using the formula

*x*=*y*→ (*f*(…,*x*,…) = z →*f*(…,*y*,…) = z).

Many other properties of equality are consequences of the axioms above, for example:

**Symmetry.**If*x*=*y*then*y*=*x*.**Transitivity.**If*x*=*y*and*y*=*z*then*x*=*z*.

### [edit] First-order logic without equality

An alternate approach considers the equality relation to be a non-logical symbol. This convention is known as **first-order logic without equality**. If an equality relation is included in the signature, the axioms of equality must now be added to the theories under consideration, if desired, instead of being considered rules of logic. The main difference between this method and first-order logic with equality is that an interpretation may now interpret two distinct individuals as “equal” (although, by Leibniz’s law, these will satisfy exactly the same formulas under any interpretation). That is, the equality relation may now be interpreted by an arbitrary equivalence relation on the domain of discourse that is congruent with respect to the functions and relations of the interpretation.

When this second convention is followed, the term **normal model** is used to refer to an interpretation where no distinct individuals *a* and *b* satisfy *a* = *b*. In first-order logic with equality, only normal models are considered, and so there is no term for a model other than a normal model. When first-order logic without equality is studied, it is necessary to amend the statements of results such as the Löwenheim–Skolem theorem so that only normal models are considered.

First-order logic without equality is often employed in the context of second-order arithmetic and other higher-order theories of arithmetic, where the equality relation between sets of natural numbers is usually omitted.

### [edit] Defining equality within a theory

If a theory has a binary formula *A*(*x*,*y*) which satisfies reflexivity and Leibniz’s law, the theory is said to have equality, or to be a theory with equality. The theory may not have all instances of the above schemes as axioms, but rather as derivable theorems. For example, in theories with no function symbols and a finite number of relations, it is possible to define equality in terms of the relations, by defining the two terms *s* and *t* to be equal if any relation is unchanged by changing *s* to *t* in any argument.

Some theories allow other *ad hoc* definitions of equality:

- In the theory of partial orders with one relation symbol ≤, one could define
*s*=*t*to be an abbreviation for*s*≤*t**t*≤*s*. - In set theory with one relation , one may define
*s*=*t*to be an abbreviation for*x*(*s**x**t**x*)*x*(*x**s**x**t*). This definition of equality then automatically satisfies the axioms for equality. In this case, one should replace the usual axiom of extensionality, , by , i.e. if*x*and*y*have the same elements, then they belong to the same sets.

## [edit] Metalogical properties

One motivation for the use of first-order logic, rather than higher-order logic, is that first-order logic has many metalogical properties that stronger logics do not. These results concern general properties of first-order logic itself, rather than properties of individual theories. They provide fundamental tools for the construction of models of first-order theories.

### [edit] Completeness and undecidability

Gödel’s completeness theorem, proved by Kurt Gödel in 1929, establishes that there are sound, complete, effective deductive systems for first-order logic, and thus the first-order logical consequence relation is captured by finite provability. Naively, the statement that a formula φ logically implies a formula ψ depends on every model of φ; these models will in general be of arbitrarily large cardinality, and so logical consequence cannot be effectively verified by checking every model. However, it is possible to enumerate all finite derivations and search for a derivation of ψ from φ. If ψ is logically implied by φ, such a derivation will eventually be found. Thus first-order logical consequence is semidecidable: it is possible to make an effective enumeration of all pairs of sentences (φ,ψ) such that ψ is a logical consequence of φ.

Unlike propositional logic, first-order logic is undecidable (although semidecidable), provided that the language has at least one predicate of arity at least 2 (other than equality). This means that there is no decision procedure that determines whether arbitrary formulas are logically valid. This result was established independently by Alonzo Church and Alan Turing in 1936 and 1937, respectively, giving a negative answer to the Entscheidungsproblem posed by David Hilbert in 1928. Their proofs demonstrate a connection between the unsolvability of the decision problem for first-order logic and the unsolvability of the halting problem.

There are systems weaker than full first-order logic for which the logical consequence relation is decidable. These include propositional logic and monadic predicate logic, which is first-order logic restricted to unary predicate symbols and no function symbols. The Bernays–Schönfinkel class of first-order formulas is also decidable.

### [edit] The Löwenheim–Skolem theorem

The Löwenheim–Skolem theorem shows that if a first-order theory of cardinality λ has any infinite model then it has models of every infinite cardinality greater than or equal to λ. One of the earliest results in model theory, it implies that it is not possible to characterize countability or uncountability in a first-order language. That is, there is no first-order formula φ(*x*) such that an arbitrary structure M satisfies φ if and only if the domain of discourse of M is countable (or, in the second case, uncountable).

The Löwenheim–Skolem theorem implies that infinite structures cannot be categorically axiomatized in first-order logic. For example, there is no first-order theory whose only model is the real line: any first-order theory with an infinite model also has a model of cardinality larger than the continuum. Since the real line is infinite, this means any theory satisfied by the real line is also satisfied by some nonstandard models. When the Löwenheim–Skolem theorem is applied to first-order set theories, the nonintuitive consequences are known as Skolem’s paradox.

### [edit] The compactness theorem

The compactness theorem states that a set of first-order sentences has a model if and only if every finite subset of it has a model. This implies that if a formula is a logical consequence of an infinite set of first-order axioms, then it is a logical consequence of some finite number of those axioms. This theorem was proved first by Kurt Gödel as a consequence of the completeness theorem, but many additional proofs have been obtained over time. It is a central tool in model theory, providing a fundamental method for constructing models.

The compactness theorem has a limiting effect on which collections of first-order structures are elementary classes. For example, the compactness theorem implies that any theory that has arbitrarily large finite models has an infinite model. Thus the class of all finite graphs is not an elementary class (the same holds for many other algebraic structures).

There are also more subtle limitations of first-order logic that are implied by the compactness theorem. For example, in computer science, many situations can be modeled as a directed graph of states (nodes) and connections (directed edges). Validating such a system may require showing that no “bad” state can be reached from any “good” state. Thus one seeks to determine if the good and bad states are in different connected components of the graph. However, the compactness theorem can be used to show that connected graphs are not an elementary class in first-order logic, and there is no formula φ(*x*,*y*) of first-order logic, in the signature of graphs, that expresses the idea that there is a path from *x* to *y*. Connectedness can be expressed in second-order logic, however.

### [edit] Lindström’s theorem

Per Lindström showed that the metalogical properties just discussed actually characterize first-order logic in the sense that no stronger logic has the properties.^{[4]} Lindström defined a class of abstract logical systems, so that it makes sense to say that one system is stronger than another. He established two theorems for systems of this type:

- A logical system satisfying Lindström’s definition that contains first-order logic and satisfies both the Löwenheim–Skolem theorem and the compactness theorem must be equivalent to first-order logic.
- A logical system satisfying Lindström’s definition that has a semidecidable logical consequence relation and satisfies the Löwenheim–Skolem theorem must be equivalent to first-order logic.

## [edit] Restrictions, extensions and variations

### [edit] Restricted languages

First-order logic can be studied in languages with fewer logical symbols than were described above.

- Because can be expressed as , and can be expressed as , either of the two quantifiers and can be dropped.
- Since can be expressed as and can be expressed as , either or can be dropped. In other words, it is sufficient to have and , or and , as the only logical connectives.
- Similarly, it is sufficient to have only and as logical connectives, or to have only the Sheffer stroke (NAND) or the NOR operator.
- It is possible to entirely avoid function symbols and constant symbols, rewriting them via predicate symbols in a appropriate way. For example, instead of using a constant symbol one may use a predicate (interpreted as ), and replace every predicate such as with . A function such as
*f*(*x*_{1},*x*_{2},…,*x*_{n}) will similarly be replaced by a predicate*F*(*x*_{1},*x*_{2},…,*x*_{n},*y*) interpreted as*y*=*f*(*x*_{1},*x*_{2},…,*x*_{n}). This change requires adding additional axioms to the theory at hand, so that interpretations of the the predicate symbols used have the correct semantics.

Restrictions such as these are useful as a technique to reduce the number of inference rules or axiom schemes in deductive systems, which leads to shorter proofs of metalogical results. The cost of the restrictions is that it becomes more difficult to express natural-language statements in the formal system at hand, because the logical connectives used in the natural language statements must be replaced by their (longer) definitions in terms of the restricted collection of logical connectives. Similarly, derivations in the limited systems may be longer than derivations in systems that include additional connectives. There is thus a trade-off between the ease of working within the formal system and the ease of proving results about the formal system.

It is also possible to restrict the arities of function symbols and predicate symbols, in sufficiently expressive theories. One can in principle dispense entirely with functions of arity greater than 2 and predicates of arity greater than 1 in theories that include a pairing function. This is a function of arity 2 that takes pairs of elements of the domain and returns an ordered pair containing them. It is also sufficient to have two predicate symbols of arity 2 that define projection functions from an ordered pair to its components. In either case it is necessary that the natural axioms for a pairing function and its projections are satisfied.

### [edit] Many-sorted logic

Ordinary first-order interpretations have a single domain of discourse over which all quantifiers range. **Many-sorted first-order logic** allows variables to have different **sorts**, which have different domains. This is also called **typed first-order logic**, and the sorts called **types** (as in data type), but it is not the same as first-order type theory. Many-sorted first-order logic is often used in the study of second-order arithmetic.

When there are only finitely many sorts in a theory, many-sorted first-order logic can be reduced to single-sorted first-order logic. One introduces into the single-sorted theory a unary predicate symbol for each sort in the many-sorted theory, and adds an axiom saying that these unary predicates partition the domain of discourse. For example, if there are two sorts, one adds predicate symbols *P*_{1}(*x*) and *P*_{2}(*x*) and the axiom

- .

Then the elements satisfying *P*_{1} are thought of as elements of the first sort, and elements satisfying *P*_{2} as elements of the second sort. One can quantify over each sort by using the corresponding predicate symbol to limit the range of quantification. For example, to say there is an element of the first sort satisfying formula φ(*x*), one writes

- .

### [edit] Additional quantifiers

Additional quantifiers can be added to first-order logic.

- Sometimes it is useful to say that “
*P(x)*holds for exactly one*x*“, which can be expressed as*x**P*(*x*). This notation, called uniqueness quantification, may be taken to abbreviate a formula such as*x*(*P*(*x*)*y*(*P*(*y*) (*x*=*y*))). **First-order logic with extra quantifiers**has new quantifiers*Qx*,…, with meanings such as “there are many*x*such that …”. Also see branching quantifiers and the plural quantifiers of George Boolos and others.**Infinitary logics**may involve quantifiers that can bind infinitely many variables.**Bounded quantifiers**are often used in the study of set theory or arithmetic.

### [edit] Non-classical and modal logics

**Intuitionistic first-order logic**uses intuitionistic rather than classical propositional calculus; for example, ¬¬φ need not be equivalent to φ. Similarly,**first-order fuzzy logics**are first-order extensions of propositional fuzzy logics rather than classical logic.**Infinitary logic**allows infinitely long sentences. For example, one may allow a conjunction or disjunction of infinitely many formulas, or quantification over infinitely many variables. Infinitely long sentences arise in areas of mathematics including topology and model theory.- First-order
**modal logic**has extra*modal operators*with meanings which can be characterised informally as, for example “it is necessary that φ” and “it is possible that φ”.

## [edit] Higher-order logics

The characteristic feature of first-order logic is that individuals can be quantified, but not predicates. Thus

is a legal first-order formula, but

is not. Second-order logic extends first-order logic by adding the latter type of quantification. Other higher-order logics allow quantification over even higher types than second-order logic permits. These higher types include relations between relations, functions from relations to relations between relations, and other higher-type objects. Thus the “first” in first-order logic describes the type of objects that can be quantified.

Unlike first-order logic, for which only one semantics is studied, there are several possible semantics for second-order logic. The most commonly employed semantics for second-order and higher-order logic, known as **full semantics**, is much stronger than the semantics for first-order logic. In particular, the (semantic) logical consequence relation for second-order and higher-order logic is not semidecidable; there is no effective deduction system for second-order logic that is sound and complete under full semantics.

Second-order logic with full semantics is more expressive than first-order logic. For example, it is possible to create axiom systems in second-order logic that uniquely characterize the natural numbers and the real line. The cost of this expressiveness is that second-order and higher-order logics have fewer attractive metalogical properties than first-order logic. The Löwenheim–Skolem theorem and compactness theorem become false when generalized to stronger logics.

## [edit] Automated theorem proving and formal methods

Automated theorem proving refers to the development of computer programs that search and find derivations (formal proofs) of mathematical theorems. Finding derivations is a difficult task because the search space can be very large; an exhaustive search of every possible derivation is theoretically possible but computationally infeasible for many systems of interest in mathematics. Thus complicated heuristic functions are developed to attempt to find a derivation in less time than a blind search.

The related area of automated proof verification uses computer programs to check that human-created proofs are correct. Unlike complicated automated theorem provers, verification systems may be small enough that their correctness can be checked both by hand and through automated software verification. This validation of the proof verifier is needed to give confidence that any derivation labeled as “correct” is actually correct.

Some proof verifiers, such as Metamath, insist on having a complete derivation as input. Others, such as Mizar and Isabelle, take a well-formatted proof sketch (which may still be very long and detailed) and fill in the missing pieces by doing simple proof searches or applying known decision procedures: the resulting derivation is then verified by a small, core “kernel”. Many such systems are primarily intended for interactive use by human mathematicians: these are known as proof assistants. They may also use formal logics that are stronger than first-order logic, such as type theory. Because a full derivation of any nontrivial result in a first-order deductive system will be extremely long for a human to write,^{[5]} results are often formalized as a series of lemmas, for which derivations can be constructed separately.

Automated theorem provers are also used to implement formal methods in computer science. In this setting, theorem provers are used to verify the correctness of programs and of hardware such as processors with respect to a formal specification. Because such analysis is time-consuming and thus expensive, it is usually reserved for projects in which a malfunction would have grave human or financial consequences.

## [edit] See also

- Equiconsistency
- Extension by definitions
- Interpretation (model theory)
- Herbrandization
- Prenex normal form
- Skolem normal form
- Table of logic symbols
- Type (model theory)

## [edit] Notes

**^**The word*language*is sometimes used as a synonym for signature, but this can be confusing because “language” can also refer to the set of formulas.**^**More precisely, there is only one language of each variant of one-sorted first-order logic: with or without equality, with or without functions, with or without propositional variables, ….**^**Some authors who use the term “well-formed formula” use “formula” to mean any string of symbols from the alphabet. However, most authors in mathematical logic use “formula” to mean “well-formed formula” and have no term for non-well-formed formulas. In every context, it is only the well-formed formulas that are of interest.**^**Ebbinghaus and Flum (1994, Chapter XIII)**^**Avigad*et al.*(2007) discuss the process of formally verifying a proof of the prime number theorem. The formalized proof required approximately 30,000 lines of input to the Isabelle proof verifier.

## [edit] References

- Jeremy Avigad, Kevin Donnelly, David Gray, Paul Raff, 2007. “A formally verified proof of the prime number theorem”,
*ACM Transactions on Computational Logic*, v. 9 n. 1. doi:10.1145/1297658.1297660 - Jon Barwise, 1977. “An introduction to first-order logic”, in Barwise, Jon, ed. (1982),
*Handbook of Mathematical Logic*, Studies in Logic and the Foundations of Mathematics, Amsterdam: North-Holland, ISBN 978-0-444-86388-1 - Jon Barwise and John Etchemendy, 2000.
*Language Proof and Logic*. Stanford, CA: CSLI Publications (Distributed by the University of Chicago Press). - David Hilbert and Wilhelm Ackermann 1950. Principles of Mathematical Logic (English translation). Chelsea. The 1928 first German edition was titled
*Grundzüge der theoretischen Logik*. - Wilfrid Hodges, 2001, “Classical Logic I: First Order Logic,” in Lou Goble, ed.,
*The Blackwell Guide to Philosophical Logic*. Blackwell. - Ebbinghaus, Heinz-Dieter; Flum, Jörg; Thomas, Wolfgang (1994),
*Mathematical Logic*, Undergraduate Texts in Mathematics (2nd ed.), Berlin, New York: Springer-Verlag, ISBN 978-0-387-94258-2

## [edit] External links

- Stanford Encyclopedia of Philosophy: “Classical Logic — by Stewart Shapiro. Covers syntax, model theory, and metatheory for first-order logic in the natural deduction style.
*forall x: an introduction to formal logic*, by P.D. Magnus, covers formal semantics and proof theory for first-order logic.- Metamath: an ongoing online project to reconstruct mathematics as a huge first-order theory, using first-order logic and the axiomatic set theory ZFC.
*Principia Mathematica*modernized and done right. - Podnieks, Karl.
*Introduction to mathematical logic.* - Cambridge Mathematics Tripos Notes (typeset by John Fremlin). These notes cover part of a past Cambridge Mathematics Tripos course taught to undergraduates students (usually) within their third year. The course is entitled “Logic, Computation and Set Theory” and covers Ordinals and cardinals, Posets and zorn’s Lemma, Propositional logic, Predicate logic, Set theory and Consistency issues related to ZFC and other set theories.

[show]Portal ·Category ·WikiProject ·Logic stubs ·Mathlogic stubs ·Cleanup ·Talk ·changes |

## Leave a Reply