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 in Ltac
  • Proof by Reflection
  • Proving in the Large
  • First-Order Abstract Syntax
  • Higher-Order Abstract Syntax
  • Type-Theoretic Interpreters
  • Extensional Transformations
  • Intensional Transformations
  • Modeling Impure Languages