Validity-Guided Synthesis of Reactive Systems from Assume-Guarantee Contracts
Andreas Katis, Grigory Fedyukovich, Huajun Guo, Andrew Gacek, John, Backes, Arie Gurfinkel, Michael W. Whalen

TL;DR
This paper introduces a novel automated synthesis method for reactive systems from assume-guarantee contracts, using validity checks of forall-exists formulas and a fixpoint approach inspired by IC3/PDR, implemented on top of JKind.
Contribution
It presents a new validity-guided synthesis algorithm that improves over existing methods by addressing soundness issues and enabling more reliable reactive system synthesis.
Findings
Outperforms existing k-induction based synthesis in experiments.
Addresses soundness issues in previous synthesis approaches.
Successfully synthesizes reactive systems from rich specifications.
Abstract
Automated synthesis of reactive systems from specifications has been a topic of research for decades. Recently, a variety of approaches have been proposed to extend synthesis of reactive systems from proposi- tional specifications towards specifications over rich theories. We propose a novel, completely automated approach to program synthesis which reduces the problem to deciding the validity of a set of forall-exists formulas. In spirit of IC3 / PDR, our problem space is recursively refined by blocking out regions of unsafe states, aiming to discover a fixpoint that describes safe reactions. If such a fixpoint is found, we construct a witness that is directly translated into an implementation. We implemented the algorithm on top of the JKind model checker, and exercised it against contracts written using the Lustre specification language. Experimental results show how the new algorithm…
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.
Taxonomy
TopicsFormal Methods in Verification · Software Engineering Research · Logic, programming, and type systems
