Certified Programming with Dependent Types
Introduction
Some Quick Examples
Introducing Inductive Types
Inductive Predicates
Infinite Data and Proofs
Subset Types and Variations
More Dependent Types
Dependent Data Structures
Reasoning About Equality Proofs
Generic Programming
Universes and Axioms
Proof Search by Logic Programming
Proof Search in Ltac
Proof by Reflection
Proving in the Large
First-Order Abstract Syntax
Dependent De Bruijn Indices
Higher-Order Abstract Syntax
Type-Theoretic Interpreters
Extensional Transformations
Intensional Transformations
Higher-Order Operational Semantics