Start here

A path that moves from specs → checks → protocol structure.

  1. Specs, invariants, and contractsA practical mental model for what specifications are and how they constrain implementations.
  2. Model checking primerHow state exploration and properties work, and how to interpret counterexamples.
  3. Session types and protocolsStructured communication as a lightweight correctness tool for concurrent systems.

All notes in this topic

Common pitfalls

  • Confusing specification with implementationA good spec constrains behaviour without baking in accidental design choices.
  • Writing properties that can’t failVacuous truth is common: the property holds because the model forbids the interesting scenario.
  • Over-indexing on notationSymbols are not the point; clear assumptions and checkable constraints are.
  • Ignoring the environmentMost failures happen at boundaries; formalising assumptions makes those failures legible.

Related topics

  • Performance notesSpecifications and invariants often translate into concrete latency budgets and measurable SLOs.
  • Distributed systems notesProtocols, time, and failure semantics are the core interface of distributed reliability.
Notes topic hub • Last updated: Jan 2026