In this paper, we revisit the theory of first-class substitution in 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. 1
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.