Awesome Reviewers checks + prompts

Proofs and specifications

Specifies a protocol or algorithm and checks it exhaustively or proves it, catching design bugs before code exists.

V1030 technique
tactic Formal verification and model checking
2 of 256 scanned repositories run it (1%)

Sub-techniques

3

IDNameDescription
V1030.001Model checking a designWrite a TLA+ spec and check invariants over all reachable states.
V1030.002Verified codeWrite code with pre- and post-conditions that a verifier proves (Dafny, Lean, Rocq).
V1030.003Proof harnesses on real codeBounded proofs over the production code itself (Kani).

Craft it

  1. Specify the part where a bug is catastrophic and tests are weak: consensus, replication, locking.
  2. Check the spec in CI on every change to it.
  3. Link spec actions to code with comments or trace checking.

Reverse engineer it

Signs that a codebase already runs this technique, and where to read how it is configured.

  • *.tla, *.dfy, *.lean or *.v files and a CI job that runs the checker.
  • #[kani::proof] harnesses.

Where the scanned repositories configure it:

  • show_manual_release_cmd_test.v in 1 repositories
  • v.v in 1 repositories

Detected by the scanner as: Proofs and specifications (design-level bugs in protocols and algorithms, checked against a specification.)

Open-source packages

5

Tools seen in scans

by repositories that run them

ToolReposCommand seenRuns inDocs
coq 2 docs
lean 1 docs
tla-plus 1 docs

Procedure examples

repositories that run it, most-starred first

RepositoryToolsRuns inEvidence
helix-editor/helix coq tests/indent/v.v 2 file(s)
vlang/v coq .github/show_manual_release_cmd_test.v 9829 file(s)

Other techniques in Formal verification and model checking