The Curry Howard correspondence is the relationship between computer programs and mathematical proofs. Specifically:
- Types can be interpreted as logical claims.
- Values can be interpreted as proofs of logical claims.
- Evaluating code can be seen as making a proof simpler.
This is tricky to think about, much like the optical illusion of a dancer, where, if you concentrate really hard, you can reverse the direction you see them spinning.
Let's take the Idris program: