Brouwer–Heyting–Kolmogorov interpretation
   HOME

TheInfoList



OR:

In
mathematical logic Mathematical logic is the study of formal logic within mathematics. Major subareas include model theory, proof theory, set theory, and recursion theory. Research in mathematical logic commonly addresses the mathematical properties of forma ...
, the Brouwer–Heyting–Kolmogorov interpretation, or BHK interpretation, of
intuitionistic logic Intuitionistic logic, sometimes more generally called constructive logic, refers to systems of symbolic logic that differ from the systems used for classical logic by more closely mirroring the notion of constructive proof. In particular, systems ...
was proposed by L. E. J. Brouwer and
Arend Heyting __NOTOC__ Arend Heyting (; 9 May 1898 – 9 July 1980) was a Dutch mathematician and logician. Biography Heyting was a student of Luitzen Egbertus Jan Brouwer at the University of Amsterdam, and did much to put intuitionistic logic on a ...
, and independently by
Andrey Kolmogorov Andrey Nikolaevich Kolmogorov ( rus, Андре́й Никола́евич Колмого́ров, p=ɐnˈdrʲej nʲɪkɐˈlajɪvʲɪtɕ kəlmɐˈɡorəf, a=Ru-Andrey Nikolaevich Kolmogorov.ogg, 25 April 1903 – 20 October 1987) was a Sovi ...
. It is also sometimes called the realizability interpretation, because of the connection with the
realizability 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 ...
theory of
Stephen Kleene Stephen Cole Kleene ( ; January 5, 1909 – January 25, 1994) was an American mathematician. One of the students of Alonzo Church, Kleene, along with Rózsa Péter, Alan Turing, Emil Post, and others, is best known as a founder of the branch of ...
. It is the standard explanation of intuitionistic logic.


The interpretation

The interpretation states what is intended to be a proof of a given
formula In science, a formula is a concise way of expressing information symbolically, as in a mathematical formula or a ''chemical formula''. The informal use of the term ''formula'' in science refers to the general construct of a relationship betwe ...
. This is specified by induction on the structure of that formula: *A proof of P \wedge Q is a pair \langle a, b \rangle where a is a proof of P and b is a proof of Q. *A proof of P \vee Q is either \langle 0, a \rangle where a is a proof of P or \langle 1, b\rangle where b is a proof of Q. *A proof of P \to Q is a function f that converts a proof of P into a proof of Q. *A proof of (\exists x S) P is a pair \langle x, a \rangle where x is an element of S and a is a proof of P. *A proof of (\forall x S) P is a function f that converts an element x of S into a proof of P. *The formula \neg P is defined as P \to \bot, so a proof of it is a function f that converts a proof of P into a proof of \bot. *There is no proof of \bot, the absurdity or bottom type (nontermination in some programming languages). The interpretation of a primitive proposition is supposed to be known from context. In the context of arithmetic, a proof of the formula x = y is a computation reducing the two terms to the same numeral. Kolmogorov followed the same lines but phrased his interpretation in terms of problems and solutions. To assert a formula is to claim to know a solution to the problem represented by that formula. For instance P \to Q is the problem of reducing Q to P; to solve it requires a method to solve problem Q given a solution to problem P.


Examples

The identity function is a proof of the formula P \to P, no matter what ''P'' is. The law of non-contradiction \neg (P \wedge \neg P) expands to (P \wedge (P \to \bot)) \to \bot: * A proof of (P \wedge (P \to \bot)) \to \bot is a function f that converts a proof of (P \wedge (P \to \bot)) into a proof of \bot. * A proof of (P \wedge (P \to \bot)) is a pair of proofs <''a'', ''b''>, where a is a proof of ''P'', and b is a proof of P \to \bot. * A proof of P \to \bot is a function that converts a proof of ''P'' into a proof of \bot. Putting it all together, a proof of (P \wedge (P \to \bot)) \to \bot is a function f that converts a pair <''a'', ''b''> – where a is a proof of ''P'', and b is a function that converts a proof of ''P'' into a proof of \bot – into a proof of \bot. There is a function f that does this, where f(\langle a, b \rangle) = b(a), proving the law of non-contradiction, no matter what ''P'' is. Indeed, the same line of thought provides a proof for (P \wedge (P \to Q)) \to Q as well, where Q is any proposition. On the other hand, the
law of excluded middle In logic, the law of excluded middle (or the principle of excluded middle) states that for every proposition, either this proposition or its negation is true. It is one of the so-called three laws of thought, along with the law of noncontradi ...
P \vee (\neg P) expands to P \vee (P \to \bot), and in general has no proof. According to the interpretation, a proof of P \vee (\neg P) is a pair <''a'', ''b''> where ''a'' is 0 and ''b'' is a proof of ''P'', or ''a'' is 1 and ''b'' is a proof of P \to \bot. Thus if neither ''P'' nor P \to \bot is provable then neither is P \vee (\neg P).


Definition of absurdity

It is not, in general, possible for a
logical system A formal system is an abstract structure used for inferring theorems from axioms according to a set of rules. These rules, which are used for carrying out the inference of theorems from axioms, are the logical calculus of the formal system. A for ...
to have a formal negation operator such that there is a proof of "not" P exactly when there isn't a proof of P; see
Gödel's incompleteness theorems Gödel's incompleteness theorems are two theorems of mathematical logic that are concerned with the limits of in formal axiomatic theories. These results, published by Kurt Gödel in 1931, are important both in mathematical logic and in the phil ...
. The BHK interpretation instead takes "not" P to mean that P leads to absurdity, designated \bot, so that a proof of \lnot P is a function converting a proof of P into a proof of absurdity. A standard example of absurdity is found in dealing with arithmetic. Assume that 0 = 1, and proceed by
mathematical induction Mathematical induction is a method for proving that a statement ''P''(''n'') is true for every natural number ''n'', that is, that the infinitely many cases ''P''(0), ''P''(1), ''P''(2), ''P''(3), ...  all hold. Informal metaphors help ...
: 0 = 0 by the axiom of equality. Now (induction hypothesis), if 0 were equal to a certain
natural number In mathematics, the natural numbers are those numbers used for counting (as in "there are ''six'' coins on the table") and ordering (as in "this is the ''third'' largest city in the country"). Numbers used for counting are called '' cardinal ...
''n'', then 1 would be equal to ''n'' + 1, ( Peano axiom: S''m'' = S''n'' if and only if ''m'' = ''n''), but since 0 = 1, therefore 0 would also be equal to ''n'' + 1. By induction, 0 is equal to all numbers, and therefore any two natural numbers become equal. Therefore, there is a way to go from a proof of 0 = 1 to a proof of any basic arithmetic equality, and thus to a proof of any complex arithmetic proposition. Furthermore, to get this result it was not necessary to invoke the Peano axiom that states that 0 is "not" the successor of any natural number. This makes 0 = 1 suitable as \bot in Heyting arithmetic (and the Peano axiom is rewritten 0 = S''n'' → 0 = S0). This use of 0 = 1 validates the
principle of explosion In classical logic, intuitionistic logic and similar logical systems, the principle of explosion (, 'from falsehood, anything ollows; or ), or the principle of Pseudo-Scotus, is the law according to which any statement can be proven from a ...
.


Definition of function

The BHK interpretation will depend on the view taken about what constitutes a ''function'' that converts one proof to another, or that converts an element of a domain to a proof. Different versions of constructivism will diverge on this point. Kleene's
realizability 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 ...
theory identifies the functions with the
computable function Computable functions are the basic objects of study in computability theory. Computable functions are the formalized analogue of the intuitive notion of algorithms, in the sense that a function is computable if there exists an algorithm that can do ...
s. It deals with Heyting arithmetic, where the domain of quantification is the natural numbers and the primitive propositions are of the form ''x'' = ''y''. A proof of ''x'' = ''y'' is simply the trivial algorithm if ''x'' evaluates to the same number that ''y'' does (which is always decidable for natural numbers), otherwise there is no proof. These are then built up by induction into more complex algorithms. If one takes
lambda calculus Lambda calculus (also written as ''λ''-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution. It is a universal model of computation th ...
as defining the notion of a function, then the BHK interpretation describes the correspondence between natural deduction and functions.


References

* * {{DEFAULTSORT:Brouwer-Heyting-Kolmogorov interpretation Dependently typed programming Functional programming Constructivism (mathematics)