- Preface
- 1. Languages
- 2. Propositional Logic
- 2.1. Syntax
- 2.2. Bare Code
- 2.3. Examples
- 2.4. Semantics
- 2.5. Interpretations
- 3. Model Theory
- 3.1. Models
- 3.2. Truth Tables
- 3.3. Counterexamples
- 3.4. Propertiesx
- 3.5. Validity
- 4. Arithmetic
- 4.1. Domain
- 4.2. Syntax
- 4.3. Semantics
- 4.4. Induction
- 4.5. Examples
- 5. Theory Extensions
- 5.1. Domain
- 5.2. Syntax
- 5.3. Semantics
- 5.4. Examples
- 5.5. Satisfiability Modulo Theories
- 6. Induction
- 7. Mathlib
- 8. (Higher-Order) Predicate Logic
- 8.1. Introduction
- 8.2. Propositions as Data Types
- 8.3. Propositions as Logical Types
- 8.4. Classical Reasoning
- 8.5. Predicates
- 8.6. Quantifiers
- 8.6.1. For All
- 8.6.2. Exists
- 8.7. Dependent Type Theory
- 9. Sets and Relations
- 9.1. Sets
- 9.2. Relations
- 9.3. Equality
- 9.4. Properties
- 10. Abstract Algebra
- 10.1. Groups
- 10.2. Actions
- 10.3. Torsors over Groups
- 10.4. Modules and Vector Spaces
- 10.5. Affine Spaces
- 10.6. n-Dimensional Spaces
- 11. Library
- 11.1. Scalar
- 11.2. Tuple
- 11.3. Vector
- 11.4. Point
- 11.5. Torsor
- 11.6. Affine
- 12. Type Heterogeneity
- 12.1. Heterogeneous Collections
- 12.2. Custom Dynamic Types
- 12.3. Existential Wrappers
- 12.4. Heterogeneous Signatures
- 12.5. Heterogeneous Lists
- 12.6. Heterogeneous Vectors
- 12.7. Sigma Chains
- Set Up for This Course
- Learning Resources