Functional Reasoning for Distributed Systems with Failures

📅 2025-10-14
📈 Citations: 0
Influential: 0
📄 PDF

career value

194K/year
🤖 AI Summary
Informal Hoare-style reasoning in distributed systems lacks formal foundations, undermining its reliability and semantic correspondence with standard models—especially for compositional verification in Byzantine fault-tolerant settings. Method: We propose the Sync/Async dual-language framework, grounded in functional denotational semantics and trace-driven operational semantics. Leveraging monadic modeling and language compilation techniques, it rigorously compiles asynchronous fault-tolerant behaviors into synchronous programs while preserving safety properties across compilation. Contribution/Results: Our approach establishes, for the first time, a provably equivalent link between Hoare-style reasoning and formal semantics, enabling modular and compositional safety proofs. Implemented in the Rocq toolchain, it verifies the safety of BOSCO and SeqPaxos and generates executable code—demonstrating both theoretical soundness and practical applicability.

Technology Category

Application Category

📝 Abstract
Distributed system theory literature often argues for correctness using an informal, Hoare-like style of reasoning. While these arguments are intuitive, they have not all been foolproof, and whether they directly correspond to formal proofs is in question. We formally ground this kind of reasoning and connect it to standard formal approaches through language design and meta-analysis, which leads to a functional style of compositional formal reasoning for a class of distributed systems, including cases involving Byzantine faults. The core of our approach is twin languages: Sync and Async, which formalize the insight from distributed system theory that an asynchronous system can be reduced to a synchronous system for more straightforward reasoning under certain conditions. Sync describes a distributed system as a single, synchronous, data-parallel program. It restricts programs syntactically and has a functional denotational semantics suitable for Hoare-style formal reasoning. Async models a distributed system as a collection of interacting monadic programs, one for each non-faulty node in the system. It has a standard trace-based operational semantics, modeling asynchrony with interleaving. Sync compiles to Async and can then be extracted to yield executable code. We prove that any safety property proven for a Sync program in its denotational semantics is preserved in the operational semantics of its compiled Async programs. We implement the twin languages in Rocq and verify the safety properties of two fault-tolerant consensus protocols: BOSCO and SeqPaxos.
Problem

Research questions and friction points this paper is trying to address.

Formalizing informal Hoare-style reasoning for distributed systems
Connecting functional reasoning to standard formal verification methods
Proving safety properties for fault-tolerant consensus protocols
Innovation

Methods, ideas, or system contributions that make the work stand out.

Functional compositional reasoning for distributed systems
Twin languages Sync and Async formalize asynchronous reduction
Compilation preserves safety properties from Sync to Async