1. Introduction
  2. Glossary, Resources
  3. 1. Foundations
    1. 1.1. Paradoxes
    2. 1.2. Incompleteness, Undecidability, Inconsistency
    3. 1.3. Computability and Lambda Calculus
    4. 1.4. Propositions as Types: The First Correspondence
    5. 1.5. Church Encodings
    6. 1.6. Lambda Cube
    7. 1.7. Propositions as Types: More Incarnations
      1. 1.7.1. System F and the Polymorphic Lambda Calculus
      2. 1.7.2. Modal Logic and Monads
    8. 1.8. HoTT
  4. 2. Dependently Typed Languages
    1. 2.1. Idris
    2. 2.2. Coq
    3. 2.3. Lean
    4. 2.4. Agda
    5. 2.5. Isabelle/HOL
    6. 2.6. F*
  5. 3. SMT Solvers
    1. 3.1. Theory and Implementation
  6. 4. Model Checking
  7. 5. Full Applications
    1. 5.1. Verifying Rust with Verus
      1. 5.1.1. Verus Fundamentals
      2. 5.1.2. Borrow Checker, Linear Types
      3. 5.1.3. Case Study: Verified Parsers
    2. 5.2. Verified Cryptography
      1. 5.2.1. Cryptol for Haskell Knowers
      2. 5.2.2. Cryptol for Anyone
      3. 5.2.3. Cryptol + Saw
    3. 5.3. Verified Hardware with SystemVerilog

A Journey Through Formal Methods

Verifying_Rust_With_Verus