Automated Verification of Reactive and Concurrent Programs by Calculation
Simon Foster, Kangfeng Ye, Ana Cavalcanti, Jim Woodcock

TL;DR
This paper introduces an algebraic verification method for reactive and concurrent programs with large or infinite state spaces, enabling automated proofs through novel operators and equational reasoning.
Contribution
It presents a new algebraic framework with operators and an equational theory for verifying reactive concurrent programs, including iterative and parallel constructs.
Findings
Verified a reactive buffer example successfully.
Mechanised verification in Isabelle/UTP ensures soundness.
Supports reasoning about iterative programs with reactive invariants.
Abstract
Reactive programs combine traditional sequential programming constructs with primitives to allow communication with other concurrent agents. They are ubiquitous in modern applications, ranging from components systems and web services, to cyber-physical systems and autonomous robots. In this paper, we present an algebraic verification strategy for concurrent reactive programs, with a large or infinite state space. We define novel operators to characterise interactions and state updates, and an associated equational theory. With this we can calculate a reactive program's denotational semantics, and thereby facilitate automated proof. Of note is our reasoning support for iterative programs with reactive invariants, based on Kleene algebra, and for parallel composition. We illustrate our strategy by verifying a reactive buffer. Our laws and strategy are mechanised in Isabelle/UTP, our…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
