Synthesis of Large Dynamic Concurrent Programs from Dynamic Specifications
Paul C. Attie

TL;DR
This paper introduces a scalable method for synthesizing large, dynamic concurrent programs that can grow at runtime, using automata-theoretic techniques to ensure correctness without state explosion.
Contribution
It presents a novel, efficient synthesis approach for dynamic concurrent programs that avoids state explosion by constructing pairwise automata instead of a full product automaton.
Findings
Method is polynomial in the number of active processes.
Successfully synthesizes correct programs with dynamic process creation.
Ensures correctness properties are inherited in large, evolving programs.
Abstract
We present a tractable method for synthesizing arbitrarily large concurrent programs, for a shared memory model with common hardware-available primitives such as atomic registers, compare-and-swap, load-linked/store conditional, etc. The programs we synthesize are dynamic: new processes can be created and added at run-time, and so our programs are not finite-state, in general. Nevertheless, we successfully exploit automatic synthesis and model-checking methods based on propositional temporal logic. Our method is algorithmically efficient, with complexity polynomial in the number of component processes (of the program) that are ``alive'' at any time. Our method does not explicitly construct the automata-theoretic product of all processes that are alive, thereby avoiding \intr{state explosion}. Instead, for each pair of processes which interact, our method constructs an automata-theoretic…
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 · Real-Time Systems Scheduling · Embedded Systems Design Techniques
