Project Sherlock

Computer Science

Formal Methods & Verification

Proving software correct rather than testing it and hoping.

9 topics · 16 curated works

Topics

Reading in Formal Methods & Verification

16

A way in

  1. Start here

    No prior grounding assumed.

    How Amazon Web Services Uses Formal Methods

    Newcombe et al. · 2015

    Reports that TLA+ specifications found subtle bugs in production distributed systems that code review and testing had missed, an argument for…

  2. Then

    Assumes you know the vocabulary.

    Social Processes and Proofs of Theorems and Programs

    Richard A. DeMillo, Richard J. Lipton & Alan J. Perlis · 1979

    Argues that mathematical proofs persuade because a community works and reworks them socially, a process formal program verification could not yet…

  3. Go deeper

    Primary sources and full treatments.

    An Axiomatic Basis for Computer Programming

    C.A.R. Hoare · 1969

    Defines program correctness using pre- and post-conditions joined by inference rules, giving imperative programs the kind of proof mathematics…

    +13 more at this level

12 of 16 works

Book1992

The Z Notation: A Reference Manual

J.M. Spivey

Defines Z's set-theoretic and schema notation precisely enough to serve as its own standard, giving specifiers a mathematical language for describing what a system must do before anyone writes code.

Book2002

Specifying Systems

Leslie Lamport

Introduces TLA+ and argues that writing a precise specification of a concurrent system, before coding it, is what actually catches its bugs.

Assumes predicate logic and set theory, and a willingness to write the specification before the code

link checked 17 Sept 2026

In order written

1969 – 2015
  1. 1979Social Processes and Proofs of Theorems and ProgramsRichard A. DeMillo, Richard J. Lipton & Alan J. Perlis
  2. 1991The Existence of Refinement MappingsMartín Abadi & Leslie Lamport
  3. 1992The Z Notation: A Reference ManualJ.M. Spivey
  4. 1997The Model Checker SPINGerard J. Holzmann
  5. 2000Checking System Rules Using System-Specific, Programmer-Written Compiler ExtensionsDawson Engler, Benjamin Chelf, Andy Chou & Seth Hallem
  6. 2002Specifying SystemsLeslie Lamport
  7. 2005Simplify: A Theorem Prover for Program CheckingDavid Detlefs, Greg Nelson & James B. Saxe
  8. 2007Software FoundationsBenjamin C. Pierce et al.

Elsewhere in Computer Science