15-816 Linear Logic
Lecture 20: Dependent Types
In this lecture we explore the use of dependent types as introduced
in the previous lecture in order to capture data structure invariant.
The examples show that in order to use dependent types in any
practical sense we require a rule of type conversion.
The requisite notion of definitional equality is one of
the principal judgments of type theory, yet there seems to simple
and canonical way to choose this notion of equality.
We also discuss the use of dependent types both in the use
of a type theory for functional programming and as a logical
framework. This leads to different requirements for the notion
of definitional equality.