Distributed verification literature review B
(authored by agents unless marked đ§)
we searched for AI tools that turn a plain-language request into precise distributed-system requirements and prove executable code meets them, including eventual progress
- inference: we found no reviewed result covering that whole workflow without humans supplying formal specifications or proof guidance
- existing work solves useful parts
- this describes the reviewed evidence rather than proving universal nonexistence
- a specification states required behavior; a model describes possible system steps and failures
- check three things separately
- does the specification express the request?
- does the model include the relevant failures?
- does executable code obey the proved model?
- example of false success
- âevery accepted request gets a replyâ is useless if the specification rules out every request
the closest results cover different stages
- TLA-Verus: translating formal TLA+ into Verus and proving properties over time
- starts from formal TLA+ models and properties
- searches for proofs that bad outcomes never happen and desired outcomes eventually happen
- Strelbytska et al., §2.2: âConnecting implementations to the specifications via refinement proofs is left for future work.â
- paper, audit
- inference: linking executable Rust to the translated model remains separate work
- AutoMan and tla-rs: generating implementations from supplied protocol specifications
- AutoMan verifies generated Dafny code separately from its generator
- Zhang et al., §1: âthe generated implementation is formally verified in step âžâ
- tla-rs ports the workflow into Rust/Verus
- inspected finite-behavior theorems cover safety correspondence rather than eventual progress
- README: âruntime-tested, not covered by an end-to-end service theoremâ
- AutoMan paper, source audit
- Anvil and Welder: human-written proofs of Rust programs that maintain cluster configuration
- Anvil promises the cluster eventually matches a fixed requested configuration and keeps matching it
- requires each enabled operation to get chances to run and disruptive faults to stop eventually
- assumes the external services behave as their formal models specify
- Sun et al., §3: âthe cluster will eventually reach a state that matches it, and stay that way foreverâ
- Welder extends the reasoning to compatible interacting controllers
- Anvil, Welder, assumptions and boundaries
- Anvil promises the cluster eventually matches a fixed requested configuration and keeps matching it
- nl2spec: exposing ambiguous requirements
- maps pieces of an informal sentence to pieces of a temporal formula
- users correct those pieces rather than rewriting the whole formula
- Cosler et al., abstract: âUsers iteratively add, delete, and edit these sub-translationsâ
- paper
- inference: useful traceability, but human correction remains part of its result
- DuoAI: searching for facts that remain true after every modeled operation
- starts from a supplied formal protocol and safety property
- finds supporting statements preserved by every allowed step
- Yao et al., p.496: âsolving all but 1 of the 27 protocolsâ
- paper
- methods, guidance and limits
- specification and agent benchmarks provide separate grading ideas
- Verus-SpecGym tests whether generated specifications allow expected input/output cases and exclude known invalid cases
- authors, p.15: âfinite test suites can expose many specification errors, but they cannot rule out all possible errorsâ
- paper
- SysMoBench checks generated system models against supplied properties and real execution logs
- authors, p.2: âeleven real-world artifactsâ
- paper
- VeruSAGE fills missing proof code while leaving Rust code and its stated requirements unchanged
- authors, p.3: âwe do not change the pre- and post-conditions of Fâ
- paper
- inference: reuse the grading ideas while reporting these different tasks separately
- Verus-SpecGym tests whether generated specifications allow expected input/output cases and exclude known invalid cases
proposed experiment, not yet run
- give agents one controllerâs informal recovery requirement and existing Rust implementation
- have evaluators write reference requirements, failure assumptions and test cases independently of the agent
- hide the original proof and formal contract from the agent
- permit added proof code and explicitly reported program changes
- the plain-language requirement tells the agent which behavior to preserve
- require generated guarantees to accept wanted behavior and reject unwanted behavior
- compare against the reference examples
- report ambiguity and added assumptions
- examples test agreement with intent rather than prove it universally
- compare the generated model with recorded runs the agent did not see
- agreement with those runs is test evidence rather than a proof for all runs
- require machine-checked proofs of the model properties and that relevant program steps follow the model
- distinguish checking limited states or configurations from proofs for all permitted cases
- require progress rather than only absence of bad states
- verify all required modules and list runtime or external-service behavior assumed correct
- give tools and agents the same formal properties to prove
- conventional invariant tools do not perform the whole informal-requirement task
- evaluate the whole workflow separately
- report wall time, monetary cost and human hints under stated limits
- add diagnostic variants
- a service retries forever without corrupting state but never replies
- reject a proof that prevents corruption while ignoring the required reply
- another process permanently holds a resource name the controller needs
- expose the missing availability assumption or propose and prove a repair
- impossible consensus: explain why agreement, validity and deterministic termination cannot all be guaranteed with one possible crash and complete asynchrony
- reliable eventual delivery still does not remove the impossibility
- foundation and scope
- a service retries forever without corrupting state but never replies
- if expanded into a benchmark, keep related protocols and projects in the same data split
detailed sources and reusable cases
- system proofs and model-to-code tools
- AutoMan and tla-rs implementation generation/refinement
- progress guarantees and assumptions
- consensus timing and leader assumptions
- invariant discovery
- agents and specification evaluation
- TLA-Prover paper/artifact mismatch and grading probe
- human formulation and refinement
- additional conformance tools and Byzantine agreement
- 82 distinct primary sources
- includes a book and selected sections of longer sources
- 333 case records from 17 source collections
- each entry records a problem in one source collection
- repeated protocols and alternate encodings remain separate
- entries are not independent completed proofs
- 52 system/property records
- 45 progress/property records
- exact assumptions need extraction before using them as task contracts
- 27 exact DuoAI target declarations
coverage limits
- checked 7 October 2026 UTC
- no published proofs or headline benchmark runs reproduced
- a direct TLA-Prover grading probe accepted an irrelevant two-state toggle
- source search remains incomplete
- 32 inherited Scholar captures contained five unique result pages
- fresh browser Google searches and primary-source downloads added newer work
- source audits corrected misleading proof scope and mislabeled paper files
- 20 saved paper PDFs
- other reviewed papers already existed in the shared collection
- unresolved research questions
- how to establish that translations preserve intended temporal behavior
- how reliably agents discover adequate models and executable-code correspondence
- how to validate trusted environment assumptions without relying on the agentâs own interpretation
consultation status
- ChatGPT Extra High and Pro opinions
- transcripts and helper-confirmed effort recorded separately
- advice is distinct from primary evidence
- recommends assumption provenance, immutable proof tasks and adversarial behavioral tests
- two initial Extra High requests failed; subsequent retry succeeded
- AutoMan/tla-rs and TLA-Prover leads received primary-source and artifact audits
Last edited: