Prophecy-Based Automated Verification of Message-Passing Programs

📅 2026-06-26
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
This work addresses the challenge of automatically verifying functional correctness of message-passing concurrent programs by proposing a modular approach that reduces program verification to solving constrained Horn clauses (CHCs). The method innovatively integrates prophecy variables with a timestamp mechanism: it models send channels using lists of future messages and captures causal dependencies among channels via timestamps. This approach yields the first fully automatic, modular CHC encoding for Rust-like message-passing programs, ensuring both soundness and completeness while effectively detecting assertion violations. A prototype verifier based on this technique demonstrates strong scalability and verification efficiency across multiple benchmarks.
📝 Abstract
We propose a fully automated method for verifying functional correctness of message-passing concurrent programs by reducing verification problems to constrained Horn clause (CHC) solving. Inspired by RustHorn's prophecy-based technique, we represent each sender channel by a list of values to be sent over the channel in the future, which enables modular encoding of sender and receiver threads in CHCs. To capture causal dependencies between different channels, we further attach timestamps to messages. We prove that the resulting reduction is sound and complete: a program is free from assertion failures if and only if the corresponding system of CHCs is satisfiable. We have also implemented a prototype verifier for Rust-like programs and experimentally confirmed the effectiveness of the approach.
Problem

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

message-passing programs
automated verification
functional correctness
concurrent programs
prophecy-based verification
Innovation

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

prophecy-based verification
message-passing concurrency
constrained Horn clauses
causal dependencies
automated program verification