λ-calculus #
The λ-calculus with polymorphism and subtyping, with a locally nameless representation of syntax. This file proves type safety.
References #
- [A. Chargueraud, The Locally Nameless Representation][Chargueraud2012]
- See also https://www.cis.upenn.edu/~plclub/popl08-tutorial/code/, from which this is adapted
theorem
Cslib.LambdaCalculus.LocallyNameless.Fsub.Typing.progress
{Var : Type u_1}
[HasFresh Var]
[DecidableEq Var]
{t : Term Var}
{τ : Ty Var}
(der : Typing [] t τ)
:
Any typable term either has a reduction step or is a value.