First-class substitutions in contextual type theory
Andrew Cave, Brigitte Pientka · 2013
In this paper, we revisit the theory of first-class substitution in contextual type theory (CTT); in particular, we focus on the abstract notion of substitution variables. This forms the basis for extending Beluga, a dependently typed proof and programming language which already supports first-class contexts and contextual objects, with first-class substitutions. To illustrate the elegance and power of first-class substitution variables, we describe the implementation of a weak normalization proof for the simply-typed lambda-calculus in Beluga.