15-399 Constructive Logic
Lecture 19: Data Structure Invariants

We continue the discussion of dependent types and how they can be used in programming. We discover some of the limitations of dependent types in programming and consider ways to overcome them by using existential types. With universal and existential types we can now see a continuum of choices between simple types and full verification in programming. Applications will be mostly in maintaining and checking invariants on data structures that cannot be enforced with simple types.

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

Frank Pfenning