In this second lecture we will look at how we can evaluate our intrinsically-typed terms in a type-safe way ensuring that, and proving, that our language is type-safe. Specifically, we will show how dependent types support the creation of intrinsically-typed definitional interpreters for imperative languages.
By the end of this lecture you will be able to:
- understand the link between definitional interpreters and proofs of type-safety;
- explain how intrinsically-typed terms enable type-safe programs to be evaluated;
- explain how dependent-types support creation of well-typed heaps required for working with memory;
The lecture is split into the following sections: