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 formal ...
, 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, system ...
was proposed by
L. E. J. Brouwer and
Arend Heyting, 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. It is the standard explanation of intuitionistic logic.
The interpretation
The interpretation states what is intended to be a proof of a given
formula. This is specified by
induction on the structure Structural induction is a proof method that is used in mathematical logic (e.g., in the proof of Łoś' theorem), computer science, graph theory, and some other mathematical fields. It is a generalization of mathematical induction over natural num ...
of that formula:
*A proof of
is a pair
where
is a proof of
and
is a proof of
.
*A proof of
is either
where
is a proof of
or
where
is a proof of
.
*A proof of
is a function
that converts a proof of
into a proof of
.
*A proof of
is a pair
where
is an element of
and
is a proof of
.
*A proof of
is a function
that converts an element
of
into a proof of
.
*The formula
is defined as
, so a proof of it is a function
that converts a proof of
into a proof of
.
*There is no proof of
, 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
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
is the problem of reducing
to
; to solve it requires a method to solve problem
given a solution to problem
.
Examples
The identity function is a proof of the formula
, no matter what ''P'' is.
The
law of non-contradiction expands to
:
* A proof of
is a function
that converts a proof of
into a proof of
.
* A proof of
is a pair of proofs <''a'', ''b''>, where
is a proof of ''P'', and
is a proof of
.
* A proof of
is a function that converts a proof of ''P'' into a proof of
.
Putting it all together, a proof of
is a function
that converts a pair <''a'', ''b''> – where
is a proof of ''P'', and
is a function that converts a proof of ''P'' into a proof of
– into a proof of
.
There is a function
that does this, where
, proving the law of non-contradiction, no matter what ''P'' is.
Indeed, the same line of thought provides a proof for
as well, where
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 noncontradic ...
expands to
, and in general has no proof. According to the interpretation, a proof of
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
. Thus if neither ''P'' nor
is provable then neither is
.
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"
exactly when there isn't a proof of
; 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"
to mean that
leads to absurdity, designated
, so that a proof of
is a function converting a proof of
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
in
Heyting arithmetic In mathematical logic, Heyting arithmetic is an axiomatization of arithmetic in accordance with the philosophy of intuitionism.Troelstra 1973:18 It is named after Arend Heyting, who first proposed it.
Axiomatization
As with first-order Peano ...
(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 d ...
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 t ...
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)