Lightweight Formal Methods

A reading path for one active project, drawn from this wiki.

This path supports a talk on formal methods a working engineer can adopt. The core is property-based testing, small model checking, types as specs and contracts. Coding agents change what formality costs, so the talk also asks what that shift means. The path runs from why now to specs, cheap checks and specs in code. A short last stage covers the heavy foundations, only where they explain the light practice.

1. Why is formality worth another look now?

The bookmarks argue that agents change what formal methods cost and return. Start here for the talk's opening claim.

2. What is a spec an engineer can actually check?

Before tools, the talk needs a working definition of a spec. These sources argue about how precise, how short and who writes it.

3. How do cheap checks find real bugs?

This is the core of lightweight practice: random properties and small models. The bookmarks have one strong model-checking story and one study of property testing.

4. How do types and contracts carry the spec inside everyday code?

Here the spec lives in the language, checked on every build. These sources show it at work in Go, Haskell and an operating system language.

5. Where does it come from, when the talk needs foundations?

Keep this stage short in the talk. These sources explain why a contract or invariant works, without making proof the goal.

Also in the wiki

Probably missing

Caveats