Appendix E: References and Further Reading Paths
Translation status: Partial. Reviewed against Japanese source commit
269d1c49b552on 2026-07-19. Some content, headings, examples, tables, or references remain partially synchronized. Track the remaining work.
This appendix is a reader-facing guide to primary sources for the methods, tools, and case studies introduced in the main text. Use it when you want to deepen a chapter, verify a claim against an official source, or decide which tool family to study next.
As of July 2026, it reflects naming changes and current mainstream references such as Coq → Rocq, CVC4 → cvc5, the Alloy 6 series, and Apalache in the TLA+ ecosystem.
How to Read the Execution Guarantees
Listing a tool in this appendix does not mean that the repository executes or guarantees it. The sources of truth are
tools/tool-manifest.json and the lane inventory in Appendix B.
Alloy, TLC, Apalache, and Dafny run in pr-quick; SPIN, NuSMV, CBMC, Quint, PRISM, Tamarin, SymbiYosys, cvc5 / Carcara, and RTLola run in
nightly; and Kani runs only through explicit optional/manual dispatch. Every other tool
listed here is documentation-only: the book does not guarantee a pinned version, execution
environment, or result for it.
How to Use This Appendix
- After a specific chapter: start with the entry that names the chapter you just finished, then follow the official site before the release page or mirror.
- When evaluating a tool: read the purpose line first, then jump to the official site or repository to confirm current installation, release, and documentation details.
- When citing the book in engineering work: prefer the primary or quasi-primary links here over secondary summaries, especially for tool capabilities, case studies, and reported results.
- When planning a second pass through the book: use the reading paths below to choose between modeling, model checking, theorem proving, program verification, and industrial adoption.
Fast Reading Paths
- Learn lightweight modeling first: Chapter 4 → Alloy → Chapter 8 for counterexample-oriented thinking.
- Strengthen concurrency and distributed-systems reasoning: Chapter 7 → TLA+ / TLC → Apalache → industrial TLA+ case studies.
- Move from proofs to mechanized assurance: Chapter 9 → Rocq or Lean → Chapter 10 for program-verification payoff.
- Evaluate tools for engineering adoption: Chapters 10–12 → Dafny / CBMC / SPARK / Z3 / cvc5.
- Study business-facing evidence: Chapter 13 → Paris Metro Line 14, Amazon
s2n, and industrial TLA+ reports.
How Sources Were Chosen
- Reported values (measurements / case data): cite primary or quasi-primary sources such as papers, official blogs, or official reports.
- Illustrative examples: mark them as examples so readers do not mistake them for generally established values.
- Uncertain estimates: avoid them where possible. If one is unavoidable, state that it is uncertain and record the assumptions, including scope and measurement conditions.
1) Specification Languages and Modeling Tools (Alloy / TLA+ / Z / CSP)
Alloy (Alloy 6.x)
- Purpose: describing relational models and searching for counterexamples within a finite scope
- Best after reading: Chapter 4, “Introduction to Lightweight Formal Methods — Specification with Alloy”; Chapter 8, “Introduction to Model Checking”
- Primary sources:
- Official site: https://alloytools.org/
- Releases (
Alloy 6.x): https://github.com/AlloyTools/org.alloytools.alloy/releases
TLA+ (TLC)
- Purpose: writing state-transition specifications for distributed and concurrent systems and verifying them by exploration with
TLC - Best after reading: Chapter 7, “Specifying Time — Introduction to TLA+”; Chapter 8, “Introduction to Model Checking”
- Primary sources:
- Official TLA+ page (Lamport site): https://lamport.azurewebsites.net/tla/tla.html
- TLA+2 (current-version and documentation status): https://lamport.azurewebsites.net/tla/tla2.html
- Leslie Lamport, Specifying Systems: https://lamport.azurewebsites.net/tla/book.html
- Leslie Lamport, The Specification Language TLA+ (set-theoretic values and semantics): https://lamport.azurewebsites.net/pubs/lamport-spec-tla-plus.pdf
- Specifying Systems chapter draft (TLA+ is untyped; type invariants are explicit): https://lamport.azurewebsites.net/pubs/spec-book-chap.pdf
- A PlusCal User’s Manual - P-Syntax (including use of the PlusCal translator and TLC): https://lamport.azurewebsites.net/tla/p-manual.pdf
- TLA+ Hyperbook: https://lamport.azurewebsites.net/tla/hyperbook.html
tlaplus/tlaplusreleases (tla2tools.jar): https://github.com/tlaplus/tlaplus/releases
Z (Z notation)
- Purpose: rigorously describing state-based specifications with sets, relations, and mappings so they can serve as a basis for review and verification
- Best after reading: Chapter 5, “State-Based Specification — Fundamentals of Z Notation”
- Primary sources (implementations and tools):
- Community Z Tools (
CZT) source repository: https://github.com/community-z-users/czt SourceForge(CZTproject): https://sourceforge.net/projects/czt/
- Community Z Tools (
CSP
- Purpose: handling communication, synchronization, deadlock, and related properties in concurrent processes
- Best after reading: Chapter 6, “Process-Centric Specification — Concurrency with CSP”
- Primary sources (tool example):
FDR(information on the CSP model checker): https://www.cs.ox.ac.uk/projects/fdr/
2) Model Checking and State-Space Exploration (TLC / Apalache / SPIN / NuSMV / PRISM / SymbiYosys)
Apalache (Additional checking for TLA+, SMT-based)
- Purpose: checking properties of TLA+ specifications through SMT-based exploration and constraint solving, as a complement to
TLC - Best after reading: Chapter 7, “Specifying Time — Introduction to TLA+”; Chapter 8, “Introduction to Model Checking”; Chapter 12, “Tools and Automation”
- Primary sources:
- Official site: https://apalache-mc.org/
GitHub(releases / distributions): https://github.com/apalache-mc/apalache/releases
SPIN (Promela)
- Purpose: explicit-state model checking of concurrent systems written in
Promela, including counterexample traces; distinguish full-state search from approximate modes such as bitstate hashing - Best after reading: Chapter 6, “Process-Centric Specification — Concurrency with CSP”; Chapter 8, “Introduction to Model Checking”
- Primary sources:
- Official page (
spinroot): https://spinroot.com/spin/whatispin.html - Pinned SPIN CLI manual source (
-searchand related options): https://github.com/nimble-code/Spin/blob/4883fbb1b1ef1f75fa9dda78efe1ad8910baf819/Man/spin.1
- Official page (
NuSMV / nuXmv
- Purpose: NuSMV is the classical symbolic model checker, and nuXmv is its extended successor. When citing results, record the tool name, engine, fairness constraints, timeout,
unknown, and abstraction used. - Best after reading: Chapter 8, “Introduction to Model Checking”
- Primary sources:
- Official site: https://nusmv.fbk.eu/
- nuXmv official site: https://nuxmv.fbk.eu/
- nuXmv User Manual: https://nuxmv.fbk.eu/downloads/nuxmv-user-manual.pdf
PRISM (Probabilistic and Quantitative Model Checking)
- Purpose: probability reachability, steady-state, threshold, and reward / expected-cost checking for DTMCs, CTMCs, and MDPs
- Best after reading: Chapter 8 on probabilistic and quantitative model checking, Appendix C on the conceptual LTL / CTL correspondence, and Appendix B on the nightly execution path
- Execution boundary: the book’s nightly contract pins PRISM 4.10.1, the official Linux x86-64 archive and SHA-256, the explicit engine, and one teaching DTMC. The official distribution is GPL-2.0, and CI artifacts and Pages do not redistribute the tool binary.
- Primary sources:
- Official site: https://www.prismmodelchecker.org/
- Download, current version, and GPL-2.0: https://www.prismmodelchecker.org/download.php
- Official PRISM 4.10.1 release: https://github.com/prismmodelchecker/prism/releases/tag/v4.10.1
- Official manual: https://www.prismmodelchecker.org/manual/
- DTMC / CTMC / MDP model types: https://www.prismmodelchecker.org/manual/ThePRISMLanguage/ModelType
- Introduction to the property language: https://www.prismmodelchecker.org/manual/PropertySpecification/Introduction
- Property syntax and semantics: https://www.prismmodelchecker.org/manual/PropertySpecification/SyntaxAndSemantics
- Reward-based properties: https://www.prismmodelchecker.org/manual/PropertySpecification/Reward-basedProperties
- Ordinary model checking: https://www.prismmodelchecker.org/manual/RunningPRISM/ModelChecking
- Statistical model checking: https://www.prismmodelchecker.org/manual/RunningPRISM/StatisticalModelChecking
- Official case studies: https://www.prismmodelchecker.org/casestudies/
SymbiYosys (Open-Source RTL Formal Verification)
- Purpose: BMC, k-induction safety proofs, cover reachability, and cycle-trace generation for SystemVerilog RTL
- Best after reading: Chapter 8 on RTL formal verification, Appendix B on the nightly path, and Appendix C on the conceptual roles of
assert,assume, andcover - Execution boundary: the book’s nightly contract pins the official OSS CAD Suite 20260716 Linux x64 asset and SHA-256, SBY
v0.67-4-gfea6e46, Yosys0.67+40, Bitwuzla0.9.1, thesmtbmcengine, and depth 6. CI artifacts and Pages do not redistribute the suite binaries. - Assurance boundary: results are relative to the SystemVerilog formal subset accepted by Yosys, the RTL, clock/reset/environment assumptions, properties, mode, depth, and backend. They do not automatically establish correctness of clock-domain crossings, timing, physical or analog behavior, a post-synthesis netlist, or all of SystemVerilog Assertions.
- Primary sources:
- Official SymbiYosys repository: https://github.com/YosysHQ/sby
- Official SymbiYosys documentation: https://symbiyosys.readthedocs.io/en/latest/
- Quickstart: https://symbiyosys.readthedocs.io/en/latest/quickstart.html
- Reference for modes, engines, tasks, and artifacts: https://symbiyosys.readthedocs.io/en/latest/reference.html
- Official Yosys repository: https://github.com/YosysHQ/yosys
- Official OSS CAD Suite repository: https://github.com/YosysHQ/oss-cad-suite-build
- Official OSS CAD Suite 2026-07-16 release: https://github.com/YosysHQ/oss-cad-suite-build/releases/tag/2026-07-16
- Official Bitwuzla repository: https://github.com/bitwuzla/bitwuzla
Tamarin Prover (Symbolic Protocol Verification under an Active Adversary)
- Purpose: verify secrecy, authentication, replay, and related trace lemmas under a Dolev–Yao network attacker, and retain an attack trace when a lemma is falsified
- Best after reading: Chapter 13 on communication and cryptographic protocols, Appendix B on the nightly path, and Appendix C on facts, rules, events, and lemmas
- Execution boundary: the book’s nightly contract pins official Linux x86-64 distributions, commits, and SHA-256 values for Tamarin Prover 1.12.0 and supported Maude 3.5.1, a 150-second inner timeout, a 180-second runner timeout, and automated proof mode. CI artifacts and Pages do not redistribute either binary.
- Assurance boundary: results are relative to the symbolic model, equational theory, assumptions, and stated lemmas. They do not unconditionally establish computational soundness, implementation correctness, cryptographic strength, key-compromise behavior, or side-channel resistance.
- Primary sources:
- Official manual, Introduction: https://tamarin-prover.com/manual/master/book/001_introduction.html
- Official manual, First Example and authentication: https://tamarin-prover.com/manual/master/book/003_example.html
- Official manual, Protocol Rules: https://tamarin-prover.com/manual/master/book/005_protocol-specification-rules.html
- Official manual, Property Specification: https://tamarin-prover.com/manual/master/book/007_property-specification.html
- Official repository: https://github.com/tamarin-prover/tamarin-prover
- Official examples: https://github.com/tamarin-prover/tamarin-prover/tree/develop/examples
- Official Tamarin Prover 1.12.0 release: https://github.com/tamarin-prover/tamarin-prover/releases/tag/1.12.0
- Official Maude download guidance: https://maude.cs.illinois.edu/get-maude
- Official Maude 3.5.1 release: https://github.com/maude-lang/Maude/releases/tag/Maude3.5.1
Runtime Verification (RTLola / MonPoly / RV-Monitor)
This comparison was rechecked against official repositories, distribution pages, and documentation on 2026-07-16. Although all three belong to runtime verification, stream specifications, metric temporal logic over logs, and Java instrumentation create different integration boundaries.
| Candidate | Primary integration form | Observed official distribution and maintenance facts | Decision for this book |
|---|---|---|---|
| RTLola | Apply typed input/output streams and triggers to online or offline events | rtlola-cli 0.1.2 crates.io package, offline CSV, JSON output, and upstream updates during 2025 were confirmed |
Selected. An immutable package digest, embedded commit and Cargo.lock, pinned Rust, and structured verdict can form one nightly contract |
| MonPoly | Check timestamped logs against metric first-order temporal logic | SourceForge lists 1.1.10 dated 2020-11-25 as the latest distribution | Not selected here. It fits offline log monitoring, but this repository would still need a JSON-verdict, provenance, and current CI-maintenance contract |
| RV-Monitor | Generate Java monitors from specifications and instrument an application | The official GitHub repository has no release; the latest commit visible at review time was 2020-12-18; MIT license | Not selected here. Java generation and instrumentation create a wider build and integration scope than replaying a fixed CSV teaching trace |
RTLola was selected because it connected most narrowly to this repository’s pinned offline trace and structured-artifact contract, not because of a blanket feature ranking. This is not a claim that MonPoly or RV-Monitor is inferior; a different property language, instrumentation method, or operating platform can change the choice.
- Execution boundary: the book pins RTLola CLI 0.1.2, commit
11b6bb080a5fa487645fb023fb3d0baea6874e73, Rust 1.87.0, relative-time CSV, and JSON violation output. - Assurance boundary: only two fictional three-event normal/violating traces are checked; completeness of event collection, unobserved runs, online operation, and all RTLola features are outside the guarantee.
- Primary sources:
- Official RTLola Interpreter repository: https://github.com/reactive-systems/RTLola-Interpreter
- RTLola CLI 0.1.2 documentation: https://docs.rs/rtlola-cli/0.1.2/rtlola_cli/
- RTLola language and CLI source commit: https://github.com/reactive-systems/RTLola-Interpreter/commit/11b6bb080a5fa487645fb023fb3d0baea6874e73
- Official MonPoly project page: https://infsec.ethz.ch/research/software/monpoly.html
- Official MonPoly distribution: https://sourceforge.net/projects/monpoly/
- Official MonPoly source repository: https://bitbucket.org/monpoly/monpoly/src/master/
- Official RV-Monitor repository: https://github.com/runtimeverification/rv-monitor
3) Theorem Proving and Proof Assistants (Rocq / Lean / Isabelle / Agda)
Rocq (formerly Coq)
- Purpose: proof assistance based on type theory and kernel checking, together with integrated development of proofs and programs
- Best after reading: Chapter 9, “Fundamentals of Theorem Proving”
- Primary sources:
- Official site: https://rocq-prover.org/
- Release example (
9.0.0): https://rocq-prover.org/releases/9.0.0 - Proof mode (
QedandAdmitted): https://rocq-prover.org/doc/v9.0/refman/proofs/writing-proofs/proof-mode.html - Core language and kernel: https://rocq-prover.org/doc/V9.2.0/refman/language/core/index.html
- Assumptions (axioms, hypotheses, and variables): https://rocq-prover.org/doc/master/refman/language/core/assumptions.html
Lean (Lean 4)
- Purpose: theorem proving, use of mathematical libraries, and proof automation through tactics
- Best after reading: Chapter 9, “Fundamentals of Theorem Proving”
- Primary sources:
- Official site: https://lean-lang.org/
GitHub(Lean 4): https://github.com/leanprover/lean4- Lean Reference, Axioms (including the
sorryAxboundary): https://lean-lang.org/doc/reference/latest/Axioms/ - Lean Tactic Reference (
admit/sorryand the trust boundary ofnative_decide): https://lean-lang.org/doc/reference/latest/Tactic-Proofs/Tactic-Reference/
Logical Soundness, Completeness, and Semantics
- Purpose: read Chapter 9’s soundness and completeness claims relative to a chosen logic, deductive system, and semantics
- Boundary: do not generalize completeness of classical first-order logic for its standard semantics to standard second-order semantics, higher-order logic, or dependent type theory without qualification
- Theoretical background:
- Stanford Encyclopedia of Philosophy, “Logical Consequence”: https://plato.stanford.edu/entries/logical-consequence/
- Stanford Encyclopedia of Philosophy, “Kurt Gödel” (the completeness theorem for first-order logic): https://plato.stanford.edu/entries/goedel/
- Stanford Encyclopedia of Philosophy, “Second-order and Higher-order Logic”: https://plato.stanford.edu/entries/logic-higher-order/
Isabelle
- Purpose: proof assistance with
Isabelle/HOLand related environments, proof documentation, and tool integration - Best after reading: Chapter 9, “Fundamentals of Theorem Proving”
- Primary sources:
GitHub(mirror): https://github.com/isabelle-prover/mirror-isabelle
Agda
- Purpose: theorem proving and program description based on dependent types
- Best after reading: Chapter 9, “Fundamentals of Theorem Proving”, as auxiliary context for type theory
- Primary sources:
- Documentation: https://agda.readthedocs.io/en/latest/
4) Program Verification and Static Assurance (Dafny / Frama-C / CBMC / VeriFast / SPARK)
Dafny
- Purpose: integrating specification and verification through contracts and automated checking based on SMT
- Best after reading: Chapter 10, “Program Verification”; Chapter 12, “Tools and Automation”
- Primary sources:
- Official site: https://dafny.org/
GitHub: https://github.com/dafny-lang/dafny
Frama-C
- Purpose: static analysis and verification for C, including annotations and plugins
- Best after reading: Chapter 10, “Program Verification”
- Primary sources:
GitHub(distribution / snapshots): https://github.com/Frama-C/Frama-C-snapshot
CBMC
- Purpose: bounded model checking for C and C++, including bug finding, safety checking, and assertions
- Best after reading: Chapter 8, “Introduction to Model Checking”; Chapter 10, “Program Verification”
- Primary sources:
- Official site: https://www.cprover.org/cbmc/
- CBMC Background Concepts (scope of bounded symbolic checking): https://diffblue.github.io/cbmc/background-concepts.html
VeriFast
- Purpose: verification based on separation logic for languages such as C and Java
- Best after reading: Chapter 10, “Program Verification”
- Primary sources:
SPARK (Ada)
- Purpose: contracts, static analysis, and proof for high-assurance
Adadevelopment, especially in safety-critical contexts - Best after reading: Chapter 11, “Integrating Formal Methods into Development Processes”; Chapter 12, “Tools and Automation”
- Primary sources:
- Official site: https://www.adacore.com/sparkpro
5) SMT Solvers and Verification Backends (Z3 / cvc5)
Z3
- Purpose: a foundation for constraint solving and automated reasoning, often used as a backend for verifiers
- Best after reading: Chapter 10, “Program Verification”; Chapter 12, “Tools and Automation”
- Primary sources:
GitHubreleases: https://github.com/Z3Prover/z3/releases
cvc5 (successor to the CVC line, formerly CVC4)
- Purpose: an SMT solver often used as the backend of other verification tools
- Best after reading: Chapter 10, “Program Verification”; Chapter 12, “Tools and Automation”
- Primary sources:
GitHub: https://github.com/cvc5/cvc5GitHubreleases: https://github.com/cvc5/cvc5/releases- Python bindings, when needed: https://pypi.org/project/cvc5/
Independent rechecking of SMT proof certificates (Alethe / LFSC / DRAT / LRAT)
- Execution boundary for the pinned example contract:
cvc5 1.3.4is pinned to release tagcvc5-1.3.4, release commitf3b21c4483d3b88dc63cb7cd3e5eb092eee5e341, and official assetcvc5-Linux-x86_64-static.zipwith SHA-256dcdbfada0ce493ee98259c0816e0daafc561c223aadb3af298c2968e73ea39c6Carcara 1.1.0is referenced at the release level, but the compatibility commit pinned by cvc5’scontrib/get-carcara-checkeris394edbb15ba95c47893f1d821fddde7e016af178- The SHA-256 of that pinned source archive is
28562432ca7413a662d25f03e328cab4b7b9bf649b2ca69268a255a44a5ddee6 - The build boundary for Carcara is the pinned Rust/Cargo
1.87.0toolchain
- The cvc5 1.3.4 Alethe documentation lists equality with uninterpreted functions, linear arithmetic, bit-vectors, and parts of strings, with or without quantifiers, as the currently supported area. This is not universal compatibility; check each solver/checker pair and logic fragment explicitly
- The cvc5 1.3.4 release note says Alethe proof support was improved to full translation for the CPC fragment for logics in AUFNIRA. That is useful provenance, but not a basis for claiming blanket proof-format coverage
- The cvc5 LFSC documentation says there is basic support over all supported theories, while also warning that unsupported internal proof rules may be printed as trust steps. In a strict checking pipeline, unresolved trust steps are non-success
- DRAT and LRAT are propositional CNF proof ecosystems. They validate unsatisfiability of the post-encoding CNF problem, not directly the original SMT problem, the source specification, the encoder, or omitted assumptions
- Primary sources:
- cvc5 Proof Production: https://cvc5.github.io/docs/cvc5-1.3.4/proofs/proofs.html
- cvc5 Alethe output: https://cvc5.github.io/docs/cvc5-1.3.4/proofs/output_alethe.html
- cvc5 LFSC output: https://cvc5.github.io/docs/cvc5-1.3.4/proofs/output_lfsc.html
- cvc5
get-carcara-checkerat the pinned release: https://github.com/cvc5/cvc5/blob/cvc5-1.3.4/contrib/get-carcara-checker - Carcara: https://github.com/ufmg-smite/carcara
- DRAT-trim: https://github.com/marijnheule/drat-trim
6) Distributed-Systems Theory (CAP / FLP and Changed Assumptions)
- Reading rule: read an impossibility theorem as a package of computational model, communication assumptions, failure model, and guaranteed property.
- Primary sources:
- Gilbert and Lynch, CAP theorem: https://www.cs.princeton.edu/courses/archive/spr22/cos418/papers/cap.pdf
- Fischer, Lynch, and Paterson, FLP: https://groups.csail.mit.edu/tds/papers/Lynch/jacm85.pdf
- Dwork, Lynch, and Stockmeyer, partial synchrony: https://groups.csail.mit.edu/tds/papers/Lynch/jacm88.pdf
- Chandra and Toueg, unreliable failure detectors: https://www.cs.utexas.edu/~lorenzo/corsi/cs380d/papers/p225-chandra.pdf
- Ben-Or, randomized asynchronous agreement (DOI:
10.1145/800221.806707): https://cris.huji.ac.il/en/publications/another-advantage-of-free-choice-completely-asynchronous-agreemen/
7) Industrial Case Studies and Adoption Evidence
Paris Metro Line 14 (B-Method)
- Best after reading: Chapter 13, “Case Studies”
- Primary and quasi-primary sources:
- Clearsy (
Line 14/B-Method): https://www.clearsy.com/en/the-tools/extension-of-line-14-of-the-paris-metro-over-25-years-of-reliability-thanks-to-the-b-formal-method/ - Butler et al. (
FMICS 2020, Springer chapter): https://link.springer.com/chapter/10.1007/978-3-030-58298-2_8
- Clearsy (
Amazon s2n (verification of a cryptographic implementation)
- Best after reading: Chapter 13, “Case Studies”
- Primary and quasi-primary sources:
AWS Security Blog: https://aws.amazon.com/blogs/security/automated-reasoning-and-amazon-s2n/- Galois (verification example with
SAW): https://www.galois.com/articles/verifying-s2n-hmac-with-saw CAV 2018(s2n/SAWreport, Springer chapter): https://doi.org/10.1007/978-3-319-96142-2_26s2n-tls(GitHub): https://github.com/aws/s2n-tls
Industrial use of TLA+
- Best after reading: Chapter 7, “Specifying Time — Introduction to TLA+”; Chapter 13, “Case Studies”
- Primary and quasi-primary sources:
- Lamport (
Industrial use of TLA+): https://lamport.azurewebsites.net/tla/industrial-use.html Microsoft Learn(distributed implementation and consistency inCosmos DB, with a path to TLA+ specifications): https://learn.microsoft.com/en-us/azure/cosmos-db/global-dist-under-the-hoodAzure Cosmos DB(high-level TLA+ specifications): https://github.com/Azure/azure-cosmos-tlaMicrosoft Research(video on TLA+ specifications forCosmos DBconsistency guarantees): https://www.microsoft.com/en-us/research/video/tla-specifications-of-the-consistency-guarantees-provided-by-cosmos-db/- Hackett (
ICSE SEIP 2023, PDF): https://fhackett.com/files/icse-seip-23-inconsistency.pdf
- Lamport (
8) AI and Formal Methods (Further Reading and Boundaries)
Use this section after Chapters 9–12 if you want to separate promising AI-assisted workflows from assurance mechanisms that remain fundamentally non-negotiable.
LLMs are useful for drafting specifications, proofs, and counterexample interpretations and for assisting exploration. They are not, however, a source of final assurance. This book recommends treating LLM output as untrusted input and always closing the loop with mechanical verification such as model checking, type checking, or SMT-based verification.
- Representative implementations and evaluation platforms:
Lean Copilot: https://github.com/lean-dojo/LeanCopilotProofGym(NeurIPS 2025): https://neurips.cc/virtual/2025/131121APOLLO(arXiv): https://arxiv.org/html/2505.05758v5- Natural language to formal language (example:
EMNLP 2025, PDF): https://aclanthology.org/2025.emnlp-main.1586v2.pdf
- Reference (quasi-primary): How Amazon Web Services Uses Formal Methods (
CACM) https://cacm.acm.org/research/how-amazon-web-services-uses-formal-methods/