Certified Programming with Dependent Types
Introduction
Some Quick Examples
Introducing Inductive Types
Inductive Predicates
Infinite Data and Proofs
Subset Types and Variations