Curry-Howard correspondence
https://en.wikipedia.org/wiki/Curry-Howard_correspondence
Curry-Howard correspondence (CHC) is the direct relationship between computer programs and mathematical proofs. CHC is the link between logic and computation.
(In PLT and proof theory) the Curry-Howard correspondence, is also known as proofs-as-programs and propositions-as-types.
CHC is a generalization of a syntactic analogy between systems of formal logic and computational calculi.
CHC is usually attributed to Haskell Curry and William Alvin Howard, although the idea is related to the operational interpretation of intuitionistic logic given in various formulations by Brouwer, Heyting and Kolmogorov (Brouwer-Heyting-Kolmogorov interpretation) and Stephen Kleene (Realizability).
The relationship has been extended to include category theory as the 3-way Curry-Howard-Lambek correspondence.
CHC is the observation that
two families of seemingly unrelated formalisms,
the proof systems
on the one hand and
the models of computation
on the other,
are in fact the same kind of mathematical objects
.
If one abstracts over the peculiarities of either formalism, the following generalization arises:
A proof is a program, and the formula it proves is the type for the program.
More informally, this can be seen as an analogy that states that
the return type of a function is analogous to a logical theorem
with hypotheses corresponding to the types of the arguments;
the program to compute that function is analogous to a proof of that theorem.
This sets a form of logic programming on a rigorous foundation: proofs can be represented as programs, and especially as lambda terms, or proofs can be run.
CHC also showed that classical logic corresponds to the ability to manipulate the continuation of programs. Also, the symmetry of sequent calculus was shown to express the duality between the evaluation strategies call-by-name and call-by-value.
Last updated
Was this helpful?