We complete the presentation of Mini-ML and prove some properties of the
language. Specifically, we prove value soundness, which states
that the result of evaluation is indeed a value, and type
preservation, which states that the value of an expression of type
t will also have type t.
These theorems introduce the fundamental techniques and notions that
will accompany us throughout the course. In particular, we will see
proofs by induction on the structure of derivations and applications of
inversion principles. We will also encounter the fundamental properties
of parametric and hypothetical judgments, which are usually expressed as
substitution lemmas.