- Introduction
- User Guide
- 1. Getting Started
- 1.1. About Kind
- 1.2. Installation
- 1.3. Hello World!
- 1.4. Hello Kind!
- Book
- 2. Basics: Introduction
- 2.1. Enumerated Types
- 2.1.1. Days of the Week
- 2.2. Booleans
- 2.3. Function Types
- 2.4. Modules
- 2.5. Numbers
- 2.6. Proof by Simplification
- 2.7. Proof by Application
- 2.8. Proof by Case Analysis
- 2.9. Proof by Rewriting
- 2.10. Equal.chain and Equal.mirror
- 2.11. More Exercises
- 3. Induction: Proof by Induction
- 3.1. Exercises
- 3.2. More Exercises
- 4. Data Structures
- 4.1. Lists of Numbers
- 4.2. Reasoning about Lists
- 4.3. Maybe
- 5. Polymorphism
- 5.1. Functions as Data
- 5.2. Additional Exercises
- 6. Logic in Kind
- 6.1. Logical Connectives
- 6.2. Falsehood and Negation
- 6.3. Truth, Equivalence, and Quantification
- 6.4. Programming with Propositions
- 6.5. Applying Theorems to Arguments
- 6.6. Kind vs Set Theory
- 6.7. Classical vs. Constructive Logic
- 7. Inductively Defined Propositions
- 7.1. Using Evidence in Proofs
- 7.2. Inductive Relations
- 7.3. Case Study: Regular Expressions
- 7.4. Case Study: Improving Reflection
- 7.5. Additional Exercises
- Contributors