15-399 Constructive Logic
Lecture 18: Dependent Types

After finishing the discussion of complete induction by considering its computational content, we introduce dependent types. A type is dependent if it contains terms. We have already seen a similar phenomenon with propositions (which of course depend on terms). Dependent types will allow us to represent very precise information about data structures as part of their types. For example, we will carry the length of a list as part of its type.

Dependent types have recently begun to be applied not only in type theory in general, but programming languages such as Haskell or ML. The idea is to restrict the domain of indices so that type checking remains decidable and practical.

[ Home | Schedule | Assignments | Handouts | Software | Overview ]

Frank Pfenning