In mathematical logic, realizability is a collection of methods in proof theory used to study constructive proofs and extract additional information from them. Formulas from a formal theory are "realized" by objects, known as "realizers", in a way that knowledge of the realizer gives knowledge about the truth of the formula. There are many variations of realizability; exactly which class of formulas is studied and which objects are realizers differ from one variation to another.
Realizability can be seen as a formalization of the BHK interpretation of intuitionistic logic; in realizability the notion of "proof" (which is left undefined in the BHK interpretation) is replaced with a formal notion of "realizer". Most variants of realizability begin with a theorem that any statement that is provable in the formal system being studied is realizable. The realizer, however, usually gives more information about the formula than a formal proof would directly provide.
Beyond giving insight into intuitionistic provability, realizability can be applied to prove the disjunction and existence properties for intuitionistic theories and to extract programs from proofs, as in proof mining. It is also related to topos theory via the realizability topos.
Example: realizability by numbers
Kleene's original version of realizability uses natural numbers as realizers for formulas in Heyting arithmetic. The following clauses are used to define a relation "n realizes A" between natural numbers n and formulas A in the language of Heyting arithmetic. A few pieces of notation are required: first, an ordered pair (n,m) is treated as a single number using a fixed effective pairing function; second, for each natural number n, φn is the computable function with index n.
- A number n realizes an atomic formula s=t if and only if s=t is true. Thus every number realizes a true equation, and no number realizes a false equation.
- A pair (n,m) realizes a formula A∧B if and only if n realizes A and m realizes B. Thus a realizer for a conjunction is a pair of realizers for the conjuncts.
- A pair (n,m) realizes a formula A∨B if and only if the following hold: n is 0 or 1; and if n is 0 then m realizes A; and if n is 1 then m realizes B. Thus a realizer for a disjunction explicitly picks one of the disjuncts (with n) and provides a realizer for it (with m).
- A number n realizes a formula A→B if and only if, for every m that realizes A, φn(m) realizes B. Thus a realizer for an implication is a computable function that takes a realizer for the hypothesis and produces a realizer for the conclusion.
- A pair (n,m) realizes a formula (∃ x)A(x) if and only if m is a realizer for A(n). Thus a realizer for an existential formula produces an explicit witness for the quantifier along with a realizer for the formula instantiated with that witness.
- A number n realizes a formula (∀ x)A(x) if and only if, for all m, φn(m) is defined and realizes A(m). Thus a realizer for a universal statement is a computable function that produces, for each m, a witness for the formula instantiated with m.
With this definition, the following theorem is obtained:
- Let A be a sentence of Heyting arithmetic (HA). If HA proves A then there is an n such that n realizes A.
On the other hand, there are formulas that are realized but which are not provable in HA, a fact first established by Rose.
- If HA proves a sentence (∃ x)A(x) then there is an n such that HA proves A(n)
- If HA proves a sentence A∨B then HA proves A or HA proves B.
Kreisel introduced modified realizability, which uses typed lambda calculus as the language of realizers. Modified realizability is one way to show that Markov's principle is not derivable in intuitionistic logic. On the contrary, it allows to constructively justify the principle of independence of premiss:
Relative realizability is an intuitionist analysis of recursive or recursively enumerable elements of data structures that are not necessarily computable, such as computable operations on all real numbers when reals can be only approximated on digital computer systems.
Realizability is one of the methods used in proof mining to extract concrete "programs" from seemingly nonconstructive mathematical proof. Program extraction using realizability is implemented in some proof assistants such as Coq.
- van Oosten 2000
- van Oosten 2000, p. 7
- Rose 1953
- van Oosten 2000, p. 6
- Birkedal 2000
- Birkedal, Lars; Jaap van Oosten (2000). Relative and modified relative realizability.
- Kreisel G. (1959). "Interpretation of Analysis by Means of Constructive Functionals of Finite Types", in: Constructivity in Mathematics, edited by A. Heyting, North-Holland, pp. 101–128.
- Kleene, S. C. (1945). "On the interpretation of intuitionistic number theory". Journal of Symbolic Logic 10 (4): 109–124. doi:10.2307/2269016. JSTOR 2269016.
- Kleene, S. C. (1973). "Realizability: a retrospective survey" from Mathias, A. R. D.; Hartley Rogers (1973). Cambridge Summer School in Mathematical Logic : held in Cambridge/England, August 1–21, 1971. Berlin: Springer. ISBN 3-540-05569-X. , pp. 95–112.
- van Oosten, Jaap (2000). Realizability: An Historical Essay.
- Rose, G. F. (1953). "Propositional calculus and realizability". Transactions of the American Mathematical Society 75 (1): 1–19. doi:10.2307/1990776. JSTOR 1990776.
- Realizability Collection of links to recent papers on realizability and related topics.