15-851 Computation and Deduction
Lecture 13: Evaluation in Environments
One unrealistic aspect of the high-level natural operational semantics
is the operation of substitution, which is assumed as a primitive. In
this lecture we show how to specify evaluation with respect to an
environment that assigns values to free variables.
In such an evaluation model variables are essentially pointers into an
environment. A common technique for their implementation is the use
of natural numbers called de Bruijn indices. We show how
de Bruijn indices and how to reason about them.
The soundness and completeness proof for the environment-based
machine is slightly more complicated than what we have previously
seen. In particular, we will need lexicographic induction to handle
the case of variable lookup.