Mathematical logic

Mathematical logic is a discipline within mathematics, studying formal systems in relation to the way they encode intuitive concepts of proof and computation as part of the foundations of mathematics.
Although the layperson may think that mathematical logic is the logic of mathematics, the truth is rather that it more closely resembles the mathematics of logic. It comprises those parts of logic that can be modelled mathematically. Earlier appellations were symbolic logic (as opposed to philosophical logic); and metamathematics, which is now restricted as a term to some aspects of proof theory.
Contents 
History
Mathematical logic was the name given by Peano to what is also known as symbolic logic. In essentials, it is still the logic of Aristotle, but from the point of view of notation it is written as a branch of abstract algebra.
Attempts to treat the operations of formal logic in a symbolic or algebraic way were made by some of the more philosophical mathematicians, such as Leibniz and Lambert; but their labors remained little known and isolated. It was George Boole and then Augustus De Morgan, in the middle of the nineteenth century, who presented a systematic mathematical (of course nonquantitative) way of regarding logic. The traditional, Aristotelian doctrine of logic was reformed and completed; and out of it developed an adequate instrument for investigating the fundamental concepts of mathematics. It would be misleading to say that the foundational controversies that were alive in the period 19001925 have all been settled; but philosophy of mathematics was greatly clarified by the 'new' logic.
While the traditional development of logic (see list of topics in logic) put heavy emphasis on forms of arguments, the attitude of current mathematical logic might be summed up as the combinatorial study of content. This covers both the syntactic (for example, sending a string from a formal language to a compiler program to write it as sequence of machine instructions), and the semantic (constructing specific models or whole sets of them, in model theory).
Some landmark publications were the Begriffsschrift and Bertrand Russell's Principia Mathematica.
Topics in mathematical logic
The main areas of mathematical logic include model theory, proof theory and recursion theory (often now referred to as computability theory). Axiomatic set theory is sometimes considered too. There are many overlaps with computer science, since many early pioneers in computer science, such as Alan Turing, were mathematicians and logicians.
The study of programming language semantics derives from model theory, as does program verification, in particular model checking.
The CurryHoward isomorphism between proofs and programs relates to proof theory; intuitionistic logic and linear logic are significant here. Calculi such as the lambda calculus and combinatory logic are nowadays studied mainly as idealized programming languages.
Computer science also contributes to logic by developing techniques for the automatic checking or even finding of proofs, such as automated theorem proving and logic programming.
Some fundamental results
Some important results are:
 The set of valid firstorder formulas is recursively enumerable. This follows from Gödel's completeness theorem (which establishes the equivalence of validity and provability), because the set of proofs for firstorder logic formulas is recursively enumerable ("semidecidable"). Therefore, there is a procedure that behaves as follows: Given a firstorder formula as its input, the procedure eventually halts if the formula is valid, and runs forever otherwise. Some firstorder theorem provers have this completeness property.
 The set of valid firstorder formulas is not recursive, i.e., there is no algorithm for checking for universal validity. This follows from Gödel's incompleteness theorem.
 The set of all universally valid secondorder formulas is not even recursively enumerable. This is also a consequence of Gödel's incompleteness theorem.
 Cutelimination in sequent calculus.
 The independence of the continuum hypothesis, proved by Paul Cohen in 1963.
Technical reference
This section is not intended as a crash course in mathematical logic. There is no doubt that the bare display of concise definitions is very far from an adequate encyclopedical presentation, but sections with more amenable paragraphs shall follow soon... Likewise, the several topics will be pertinently separated as soon as it makes sense, and when and where it is found a proper place.
Firstorder languages and structures
Definition. A firstorder language <math>\mathfrak{L}\,<math> is a collection of distinct typographical symbols classified as follows:
 The equality symbol <math>=\,<math>; the connectives <math>\lor\,<math>, <math>\lnot\,<math>; the universal quantifier <math>\forall\,<math> and the parentheses <math>(\,<math>, <math>)\,<math>.
 A countable set of variable symbols <math>\{v_i\}_{i = 0}^\infty\,<math>.
 A set of constant symbols <math>\{c_\alpha\}_{\alpha \in \Alpha}\,<math>.
 A set of function symbols <math>\{f_\beta\}_{\beta \in \Beta}\,<math>.
 A set of relation symbols <math>\{R_\gamma\}_{\gamma \in \Gamma}\,<math>.
Thus, in order to specify a language, it is often sufficient to specify only the collection of constant symbols, function symbols and relation symbols, since the first set of symbols is standard. The parentheses serve the only purpose of forming groups of symbols, and are not to be formally used when writing down functions and relations in formulas.
These symbols are just that, symbols. They don't stand for anything. They do not mean anything. After saying that, it is always tempting to say yet. However, that deviates further into semantics and linguistical issues not useful to the formalization of mathematical language, yet (and this time... yes, yet).
Yet, because it will indeed be necessary to get some meaning out of this formalization. The concept of model over a language provides with such a semantics.
Definition. An <math>\mathfrak{L}\,<math>structure over the language <math>\mathfrak{L}\,<math>, is a bundle consisting of a nonempty set <math>A\,<math>, the universe of the structure, together with:
 For each constant symbol <math>c\,<math> from <math>\mathfrak{L}\,<math>, an element <math>c^{\mathfrak{A}} \in A\,<math>.
 For each <math>n\,<math>ary function symbol <math>f\,<math> from <math>\mathfrak{L}\,<math>, an <math>n\,<math>ary function <math>f^{\mathfrak{A}} : A^n \longrightarrow A\,<math>.
 For each <math>n\,<math>ary relation symbol <math>R\,<math> from <math>\mathfrak{L}\,<math>, an <math>n\,<math>ary relation on <math>A\,<math>, that is, a subset <math>R^{\mathfrak{A}} \subseteq A^n\,<math>.
Often, the word model is used for that of structure in this context. However, it is important to understand perhaps its motivation, as follows.
Terms, formulas and sentences
Definition. An <math>\mathfrak{L}\,<math>term is a nonempty finite string <math>t\,<math> of symbols from <math>\mathfrak{L}\,<math> such that either
 <math>t\,<math> is a variable symbol.
 <math>t\,<math> is a constant symbol.
 <math>t\,<math> is a string of the form <math>f t_1 ... t_n\,<math> where <math>f\,<math> is an <math>n\,<math>ary function symbol and <math>t_1\,<math>, ..., <math>t_n\,<math> are terms of <math>\mathfrak{L}\,<math>.
Definition. An <math>\mathfrak{L}\,<math>formula is a nonempty finite string <math>\phi\,<math> of symbols from <math>\mathfrak{L}\,<math> such that either
 <math>\phi\,<math> is a string of the form <math>t_1 = t_2\,<math> where <math>t_1\,<math> and <math>t_2\,<math> are terms of <math>\mathfrak{L}\,<math>.
 <math>\phi\,<math> is a string of the form <math>R t_1 ... t_n\,<math> where <math>R\,<math> is an <math>n\,<math>ary relation symbol and <math>t_1\,<math>, ..., <math>t_n\,<math> are terms of <math>\mathfrak{L}\,<math>.
 <math>\phi\,<math> is of the form <math>\lnot(\alpha)\,<math> where <math>\alpha\,<math> is an <math>\mathfrak{L}\,<math>formula.
 <math>\phi\,<math> is of the form <math>(\alpha \lor \beta)\,<math> where both <math>\alpha\,<math> and <math>\beta\,<math> are <math>\mathfrak{L}\,<math>formulas.
 <math>\phi\,<math> is of the form <math>(\forall y)(\alpha)\,<math> where <math>y\,<math> is a variable symbol from <math>\mathfrak{L}\,<math> and <math>\alpha\,<math> is an <math>\mathfrak{L}\,<math>formula.
Definition. An <math>\mathfrak{L}\,<math>formula that is characterized by either the first or the second clause is called an atomic.
Definition. Let <math>\phi\,<math> be an <math>\mathfrak{L}\,<math>formula. A variable symbol <math>x\,<math> from <math>\mathfrak{L}\,<math> is said to be free in <math>\phi\,<math> if either
 <math>\phi\,<math> is atomic and <math>x\,<math> occurs in <math>\phi\,<math>.
 <math>\phi\,<math> is of the form <math>\lnot(\alpha)\,<math> and <math>x\,<math> occurs in <math>\alpha\,<math>.
 <math>\phi\,<math> is of the form <math>(\alpha \lor \beta)\,<math> and <math>x\,<math> occurs in <math>\alpha\,<math> or <math>\beta\,<math>.
 <math>\phi\,<math> is of the form <math>(\forall y)(\alpha)\,<math> where <math>x\,<math> and <math>y\,<math> are not the same variable symbols and <math>x\,<math> is free in <math>\alpha\,<math>.
Definition. A sentence is a formula with no free variables.
Assignment functions
Hereafter, <math>\mathfrak{L}\,<math> will denote a firstorder language, <math>\mathfrak{A}\,<math> will be an <math>\mathfrak{L}\,<math>structure with underlying universe set denoted by <math>A\,<math>. Every formula will be understood to be an <math>\mathfrak{L}\,<math>formula.
Definition. A variable assignment function (v.a.f.) into <math>\mathfrak{A}\,<math> is a function from the set of variables of <math>\mathfrak{L}\,<math> into <math>A\,<math>.
Definition. Let <math>s\,<math> be a v.a.f. into <math>\mathfrak{A}\,<math>. We define the term assignment function (t.a.f.) <math>\overline{s}\,<math>, from the set of <math>\mathfrak{L}\,<math>terms into <math>A\,<math>, as follows:
 If <math>t\,<math> is the variable symbol <math>x\,<math>, then <math>\overline{s}(t) = s(x)\,<math>.
 If <math>t\,<math> is the constant symbol <math>c\,<math>, then <math>\overline{s}(t) = c^{\mathfrak{A}}\,<math>.
 If <math>t\,<math> is of the form <math>f t_1 ... t_n\,<math>, then <math>\overline{s}(t) = f^{\mathfrak{A}}(\overline{s}(t_1), ..., \overline{s}(t_n))\,<math>.
Definition. Let <math>s\,<math> be a v.a.f. into <math>\mathfrak{A}\,<math> and suppose that <math>x\,<math> is a variable and that <math>a \in A\,<math>. We define the v.a.f. <math>s[xa]\,<math>, referred to as an <math>x\,<math>modification of the assignment funtion <math>s\,<math>, by
<math> s[xa](v) = \begin{cases} s(v) & \mbox{if } x = v \\ a & \mbox{if } x \ne v \end{cases} \,<math>
Logical satisfaction
Definition. Let <math>\phi\,<math> be formula and suppose <math>s\,<math> is a v.a.f. into <math>\mathfrak{A}\,<math>. We say that <math>\mathfrak{A}\,<math> satisfies <math>\phi\,<math> with assignment <math>s\,<math>, and write <math>\mathfrak{A} \models \phi[s]\,<math>, if either:
 <math>\phi\,<math> is of the form <math>t_1 = t_2\,<math> and <math>\overline{s}(t_1) = \overline{s}(t_2)\,<math>.
 <math>\phi\,<math> is of the form <math>R t_1 ... t_n\,<math> and <math>(\overline{s}(t_1), ..., \overline{s}(t_n)) \in R^{\mathfrak{A}}\,<math>.
 <math>\phi\,<math> is of the form <math>\lnot(\alpha)\,<math> and <math>\mathfrak{A}\mbox{ }\not\models\mbox{ }\alpha[s]\,<math>.
 <math>\phi\,<math> is of the form <math>(\alpha \lor \beta)\,<math> and <math>\mathfrak{A} \models \alpha[s]\,<math> or <math>\mathfrak{A} \models \beta[s]\,<math>.
 <math>\phi\,<math> is of the form <math>(\forall y)(\alpha)\,<math> and for each element <math>a \in A\,<math>, <math>\mathfrak{A} \models \alpha[s[ya]]\,<math>.
Definition. Let <math>\phi\,<math> be formula and suppose that <math>\mathfrak{A} \models \phi[s]\,<math> for every v.a.f. <math>s\,<math> into <math>\mathfrak{A}\,<math>. Then we say that <math>\mathfrak{A}\,<math> models <math>\phi\,<math>, and write <math>\mathfrak{A} \models \phi\,<math>.
Definition. Let <math>\Phi\,<math> be a set of formulas and suppose that <math>\mathfrak{A} \models \phi\,<math> for every formula <math>\phi \in \Phi\,<math> then we say that <math>\mathfrak{A}\,<math> models <math>\Phi\,<math>, and write <math>\mathfrak{A} \models \Phi\,<math>.
In the case that <math>\phi\,<math> is a sentence, that is, a formula with no free variables, the existence of a single v.a.f. for which <math>\mathfrak{A} \models \phi[s]\,<math> immediately implies that <math>\mathfrak{A} \models \phi\,<math>.
Definition. Let <math>\phi\,<math> be a sentence and suppose that <math>\mathfrak{A} \models \phi\,<math>. Then we say that <math>\phi\,<math> is true in <math>\mathfrak{A}\,<math>.
Logical implication and truth
Definition. Let <math>\Psi\,<math> and <math>\Phi\,<math> be sets of formulas. We say that <math>\Psi\,<math> logically implies <math>\Phi\,<math>, and write <math>\Psi \models \Phi\,<math>, if for every structure <math>\mathfrak{A}\,<math>, <math>\mathfrak{A} \models \Psi\,<math> implies <math>\mathfrak{A} \models \Phi\,<math>.
As a shortcut, when dealing with singletons, we often write <math>\Psi \models \phi\,<math> instead of <math>\Psi \models \{\phi\}\,<math>.
Definition. Let <math>\phi\,<math> be a formula and suppose that <math>\varnothing \models \phi\,<math>. Then we say that <math>\phi\,<math> is universaly valid, or simply valid, and in this case we simply write <math>\models \phi\,<math>.
To say that a formula <math>\phi\,<math> is valid really means that every <math>\mathfrak{L}\,<math>structure <math>\mathfrak{A}\,<math> models <math>\phi\,<math>.
Definition. Let <math>\phi\,<math> be a sentence and suppose that <math>\models \phi\,<math>. Then we say that <math>\phi\,<math> is true.
Variable substitution
Definition. Let <math>u\,<math> be a term and suppose <math>x\,<math> is a variable and <math>t\,<math> is another term. We define the term <math>u_t^x\,<math>, read <math>u\,<math> with <math>x\,<math> replaced by <math>t\,<math>, as follows:
 If <math>u\,<math> is the variable symbol <math>x\,<math>, then <math>u_t^x\,<math> is defined to be the term <math>t\,<math>.
 If <math>u\,<math> is a variable symbol other than <math>x\,<math>, then <math>u_t^x\,<math> is defined to be the term <math>u\,<math>.
 If <math>u\,<math> is a constant symbol, then <math>u_t^x\,<math> is defined to be the term <math>u\,<math>.
 If <math>u\,<math> is of the form <math>f t_1 ... t_n\,<math>, then <math>u_t^x\,<math> is defined to be the term <math>f {t_1}_t^x ... {t_n}_t^x\,<math>.
Definition. Let <math>\phi\,<math> be a formula and suppose <math>x\,<math> is a variable and <math>t\,<math> is a term. We define the formula <math>\phi_t^x\,<math>, read <math>\phi\,<math> with <math>x\,<math> replaced by <math>t\,<math>, as follows:
 If <math>\phi\,<math> is of the form <math>t_1 = t_2\,<math>, then <math>\phi_t^x\,<math> is defined to be the formula <math>{t_1}_t^x = {t_2}_t^x\,<math>.
 If <math>\phi\,<math> is of the form <math>R t_1 ... t_n\,<math>, then <math>\phi_t^x\,<math> is defined to be the formula <math>R {t_1}_t^x, ..., {t_n}_t^x\,<math>.
 If <math>\phi\,<math> is of the form <math>\lnot(\alpha)\,<math>, then <math>\phi_t^x\,<math> is defined to be the formula <math>\lnot(\alpha_t^x)\,<math>.
 If <math>\phi\,<math> is of the form <math>(\alpha \lor \beta)\,<math>, then <math>\phi_t^x\,<math> is defined to be the formula <math>(\alpha_t^x \lor \beta_t^x)\,<math>.
 If <math>\phi\,<math> is of the form <math>(\forall y)(\alpha)\,<math>, then
 if <math>x\,<math> and <math>y\,<math> are the same variable symbol, <math>\phi_t^x\,<math> is defined to be the formula <math>\phi\,<math>.
 else, <math>\phi_t^x\,<math> is defined to be the formula <math>(\forall y)(\alpha_t^x)\,<math>.
Substitutability
Definition. Let <math>\phi\,<math> be a formula and suppose <math>x\,<math> is a variable and <math>t\,<math> is a term. We say that <math>t\,<math> is substitutable for <math>x\,<math> in <math>\phi\,<math>, if either:
 <math>\phi\,<math> is atomic.
 <math>\phi\,<math> is of the form <math>\lnot(\alpha)\,<math> and <math>t\,<math> is substitutable for <math>x\,<math> in <math>\alpha\,<math>.
 <math>\phi\,<math> is of the form <math>(\alpha \lor \beta)\,<math> and <math>t\,<math> is substitutable for <math>x\,<math> in both <math>\alpha\,<math> and <math>\beta\,<math>.
 <math>\phi\,<math> is of the form <math>(\forall y)(\alpha)\,<math> and either
 <math>x\,<math> is not a free variable in <math>\phi\,<math>.
 <math>y\,<math> does not occur in <math>t\,<math> and <math>t\,<math> is substitutable for <math>x\,<math> in <math>\alpha\,<math>.
The notion of substitutability of terms for variables corresponds to that of the preservation of truth after substitution is carried out in terms or formulas. Strictly speaking, substitution is always allowed, but substitutability will be imperative in order to yield a formula which meaning was not deformed by the substitution.
References
 A. S. Troelstra & H. Schwichtenberg (2000). Basic Proof Theory (Cambridge Tracts in Theoretical Computer Science) (2nd ed.). Cambridge University Press. ISBN 0521779111.
 George Boolos & Richard Jeffrey (1989). Computability and Logic (3rd ed.). Cambridge University Press. ISBN 0521007585.
 Elliott Mendelson (1997). Introduction to Mathematical Logic (4th ed.) Chapman & Hall.
 A. G. Hamilton (1988). Logic for Mathematicians Cambridge University Press.
External links
 Mathematical Logic around the world (http://www.unibonn.de/logic/world.html)
 Polyvalued logic (http://home.swipnet.se/~w33552/logic/home/index.htm)
 Computability logic (http://www.cis.upenn.edu/~giorgi/cl.html) A new direction in Mathematical Logic, turning it from a theory of truth into a theory of computability.
See also
 Logic
 Model theory
 Computability logic
 Game semantics
 Provability logic
 Interpretability logic
 Sequent calculus
 Intuitionistic logic
 Predicate logicde:Mathematische Logik
es:Lógica matemática fr:Logique mathématique it:Logica matematica ja:数理論理学 ru:Математическая логика sq:Logjika Matematikore sv:Matematisk logik th:คณิตตรรกศาสตร์ zh:数理逻辑