Good-Enough Synthesis
Shaull Almagor, Orna Kupferman

TL;DR
This paper introduces good-enough synthesis (GE-synthesis), a relaxed approach to system synthesis that ensures correctness only for hopeful input sequences, making it more practical for autonomous systems interacting with unpredictable environments.
Contribution
The paper proposes and solves new definitions of GE-synthesis in Boolean and multi-valued settings, showing it is computationally comparable to traditional synthesis and implementable with existing tools.
Findings
GE-synthesis is not harder than traditional synthesis.
Algorithms are based on nondeterministic and universal automata.
Provides both worst-case and expectation-based analysis in multi-valued setting.
Abstract
In the classical synthesis problem, we are given an LTL formula \psi over sets of input and output signals, and we synthesize a system T that realizes \psi: with every input sequences x, the system associates an output sequence T(x) such that the generated computation x \otimes T(x) satisfies \psi. In practice, the requirement to satisfy the specification in all environments is often too strong, and it is common to add assumptions on the environment. We introduce a new type of relaxation on this requirement. In good-enough synthesis (GE-synthesis), the system is required to generate a satisfying computation only if one exists. Formally, an input sequence x is hopeful if there exists some output sequence y such that the computation x \otimes y satisfies \psi, and a system GE-realizes \psi if it generates a computation that satisfies \psi on all hopeful input sequences. GE-synthesis is…
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 Reliability and Analysis Research · Model-Driven Software Engineering Techniques
