2.4 Verication
Proving properties of programs has long been a central goal in programming
research. These days type systems are being developed that blur or erase the
distinction between type checking and verication|types are suciently rich as
to be able to state and enforce detailed correctness properties of programs, often
with sucient automation as to make it routinely possible to ensure compliance
with useful specications [Appel et al., 2014]. It seems clear that the trend is
now irreversible, for both practical and theoretical reasons.