Intuitionistic Hilbert-style deduction systems and typed combinatory logic It was at the beginning a simple remark in Curry and Feys's 1958 book on combinatory logic: the simplest types for the basic combinators K and S of
combinatory logic surprisingly corresponded to the respective
axiom schemes
α → (
β →
α) and (
α → (
β →
γ)) → ((
α →
β) → (
α →
γ)) used in
Hilbert-style deduction systems. For this reason, these schemes are now often called axioms K and S. Examples of programs seen as proofs in a Hilbert-style logic are given
below. If one restricts to the implicational intuitionistic fragment, a simple way to formalize logic in Hilbert's style is as follows. Let Γ be a finite collection of formulas, considered as hypotheses. Then δ is
derivable from Γ, denoted Γ ⊢ δ, in the following cases: • δ is an hypothesis, i.e. it is a formula of Γ, • δ is an instance of an axiom scheme; i.e., under the most common axiom system: • δ has the form
α → (
β →
α), or • δ has the form (
α → (
β →
γ)) → ((
α →
β) → (
α →
γ)), • δ follows by deduction, i.e., for some
α, both
α →
δ and
α are already derivable from Γ (this is the rule of
modus ponens) This can be formalized using
inference rules, as in the left column of the following table. Typed combinatory logic can be formulated using a similar syntax: let Γ be a finite collection of variables, annotated with their types. A term T (also annotated with its type) will depend on these variables [Γ ⊢ T:
δ] when: • T is one of the variables in Γ, • T is a basic combinator; i.e., under the most common combinator basis: • T is K:
α → (
β →
α) [where
α and
β denote the types of its arguments], or • T is S:(
α → (
β →
γ)) → ((
α →
β) → (
α →
γ)), • T is the composition of two subterms which depend on the variables in Γ. The generation rules defined here are given in the right-column below. Curry's remark simply states that both columns are in one-to-one correspondence. The restriction of the correspondence to
intuitionistic logic means that some
classical tautologies, such as
Peirce's law ((
α →
β) →
α) →
α, are excluded from the correspondence. Seen at a more abstract level, the correspondence can be restated as shown in the following table. Especially, the
deduction theorem specific to Hilbert-style logic matches the process of
abstraction elimination of combinatory logic. Thanks to the correspondence, results from combinatory logic can be transferred to Hilbert-style logic and vice versa. For instance, the notion of
reduction of terms in combinatory logic can be transferred to Hilbert-style logic and it provides a way to canonically transform proofs into other proofs of the same statement. One can also transfer the notion of normal terms to a notion of normal proofs, expressing that the hypotheses of the axioms never need to be all detached (since otherwise a simplification can happen). Conversely, the non provability in intuitionistic logic of
Peirce's law can be transferred back to combinatory logic: there is no typed term of combinatory logic that is typable with type :((
α →
β) →
α) →
α. Results on the completeness of some sets of combinators or axioms can also be transferred. For instance, the fact that the combinator
X constitutes a
one-point basis of (extensional) combinatory logic implies that the single axiom scheme :(((
α → (
β →
γ)) → ((
α →
β) → (
α →
γ))) → ((
δ → (
ε →
δ)) →
ζ)) →
ζ, which is the
principal type of
X, is an adequate replacement to the combination of the axiom schemes :
α → (
β →
α) and :(
α → (
β →
γ)) → ((
α →
β) → (
α →
γ)).
Intuitionistic natural deduction and typed lambda calculus After
Curry emphasized the syntactic correspondence between intuitionistic
Hilbert-style deduction and typed
combinatory logic,
Howard made explicit in 1969 a syntactic analogy between the programs of
simply typed lambda calculus and the proofs of
natural deduction. Below, the left-hand side formalizes intuitionistic implicational natural deduction as a calculus of
sequents (the use of sequents is standard in discussions of the Curry–Howard isomorphism as it allows the deduction rules to be stated more cleanly) with implicit weakening and the right-hand side shows the typing rules of
lambda calculus. In the left-hand side, Γ, Γ1 and Γ2 denote ordered sequences of formulas while in the right-hand side, they denote sequences of named (i.e., typed) formulas with all names different. To paraphrase the correspondence, proving Γ ⊢
α means having a program that, given values with the types listed in Γ, manufactures an object of type
α. An axiom/hypothesis corresponds to the introduction of a new variable with a new, unconstrained type, the rule corresponds to function abstraction and the rule corresponds to
function application. Observe that the correspondence is not exact if the context Γ is taken to be a set of formulas as, e.g., the λ-terms λ
x.λ
y.
x and λ
x.λ
y.
y of type would not be distinguished in the correspondence. Examples are given
below. Howard showed that the correspondence extends to other connectives of the logic and other constructions of simply typed lambda calculus. Seen at an abstract level, the correspondence can then be summarized as shown in the following table. Especially, it also shows that the notion of normal forms in
lambda calculus matches
Prawitz's notion of normal deduction in
natural deduction, from which it follows that the algorithms for the
type inhabitation problem can be turned into algorithms for deciding
intuitionistic provability. Howard's correspondence naturally extends to other extensions of
natural deduction and
simply typed lambda calculus. Here is a non-exhaustive list: • Girard-Reynolds
System F as a common language for both second-order propositional logic and polymorphic lambda calculus, •
higher-order logic and Girard's
System Fω • inductive types as
algebraic data type • necessity \Box in
modal logic and staged computation • possibility \Diamond in
modal logic and monadic types for effects • The calculus (where abstraction is restricted to
λx.
E where
x has at least one free occurrence in
E) and
CLI calculus correspond to
relevant logic. • The local truth (∇) modality in
Grothendieck topology or the equivalent "lax" modality (◯) of Benton, Bierman, and de Paiva (1998) correspond to CL-logic describing "computation types".
Classical logic and control operators At the time of Curry, and also at the time of Howard, the proofs-as-programs correspondence concerned only
intuitionistic logic, i.e. a logic in which, in particular,
Peirce's law was
not deducible. The extension of the correspondence to Peirce's law and hence to
classical logic became clear from the work of Griffin on typing operators that capture the evaluation context of a given program execution so that this evaluation context can be later on reinstalled. The basic Curry–Howard-style correspondence for classical logic is given below. Note the correspondence between the
double-negation translation used to map classical proofs to intuitionistic logic and the
continuation-passing-style translation used to map lambda terms involving control to pure lambda terms. More particularly, call-by-name continuation-passing-style translations relates to
Kolmogorov's double negation translation and call-by-value continuation-passing-style translations relates to a kind of double-negation translation due to Kuroda. A finer Curry–Howard correspondence exists for classical logic if one defines classical logic not by adding an axiom such as
Peirce's law, but by allowing several conclusions in sequents. In the case of classical natural deduction, there exists a proofs-as-programs correspondence with the typed programs of Parigot's
λμ-calculus.
Sequent calculus A proofs-as-programs correspondence can be settled for the formalism known as
Gentzen's
sequent calculus but it is not a correspondence with a well-defined pre-existing model of computation as it was for Hilbert-style and natural deductions. Sequent calculus is characterized by the presence of left introduction rules, right introduction rule and a cut rule that can be eliminated. The structure of sequent calculus relates to a calculus whose structure is close to the one of some
abstract machines. The informal correspondence is as follows: ==Related proofs-as-programs correspondences==