Reactive synthesis is an automated procedure to obtain a correct-by-construction reactive system from a given specification. Examples of these systems include the software controllers of robotic systems. Despite recent advancements on the theory and algorithms of reactive synthesis, e.g., efficient synthesis for the GR(1) fragment of linear temporal logic, many challenges remain in bringing reactive synthesis technologies to the hands of software engineers.
The SYNTECH project is about bridging this gap. It addresses challenges that relate to the change from writing code to writing specifications, and the development of tools to support a specification-centric rather than a code-centric development process.
Spectra is a new specification language for reactive systems, specifically tailored for the context of reactive synthesis. The meaning of Spectra is defined by a translation to a kernel language. Spectra comes with the Spectra Tools, a set of analyses, including a synthesizer to obtain a correct-by-construction implementation, several means for executing the resulting controller, and additional analyses aimed at helping engineers write higher- quality specifications.
Rafi Shalom and Shahar Maoz. Which of My Assumptions are Unnecessary for Realizability and Why Should I Care? Proc. of ICSE 2023, IEEE, 2023.
Gal Amram, Dor Ma'ayan, Shahar Maoz, Or Pistiner, and Jan O. Ringert. Triggers for Reactive Synthesis Specifications. Proc. of ICSE 2023, IEEE, 2023.
Dor Ma'ayan and Shahar Maoz. Using Reactive Synthesis: An End-to-End Exploratory Case Study. Proc. of ICSE 2023, IEEE, 2023.
Dor Ma'ayan, Shahar Maoz, and Jan O. Ringert. Anti-Patterns (Smells) in Temporal Specifications. Proc. of ICSE 2023 NIER track, IEEE, 2023.
Dor Ma'ayan, Shahar Maoz, and Roey Rozi. Validating the Correctness of Reactive Systems Specifications Through Systematic Exploration. Proc. of MODELS 2022, ACM, 2022.
Gal Amram, Shahar Maoz, Itay Segall, and Matan Yossef. Dynamic Update for Synthesized GR(1) Controllers. Proc. of ICSE 2022, pp. 786-797, ACM, 2022.
Shahar Maoz and Jan O. Ringert. Spectra: A Specification Language for Reactive Systems. Software and Systems Modeling, 2021.
Gal Amram, Shahar Maoz, Or Pistiner, and Jan O. Ringert. Efficient Algorithms for ω-Regular Energy Games. Proc. of FM 2021, Springer, 2021.
Gal Amram, Shahar Maoz, and Or Pistiner. GR(1)*: GR(1) Specifications Extended with Existential Guarantees. Formal Aspects of Computing, 2021.
Shahar Maoz and Rafi Shalom. Unrealizable Cores for Reactive Systems Specifications. Proc. of ICSE 2021, pp. 25-36, IEEE, 2021.
Shahar Maoz and Ilia Shevrin. Just-In-Time Reactive Synthesis. Proc. of ASE 2020, pp. 635-646, ACM, 2020.
Shahar Maoz and Rafi Shalom. Inherent Vacuity for GR(1) Specifications. Proc. of ESEC/FSE 2020, pp. 99-110, ACM, 2020.
Elizabeth Firman, Shahar Maoz, and Jan O. Ringert. Performance Heuristics for GR(1) Synthesis and Related Algorithms. Acta Informatica, 2019.
Gal Amram, Shahar Maoz, and Or Pistiner. GR(1)*: GR(1) Specifications Extended with Existential Guarantees. Proc. of FM 2019, pp. 83-100, Springer, 2019.
Shahar Maoz, Jan O. Ringert, and Rafi Shalom. Symbolic Repairs for GR(1) Specifications. Proc. of ICSE 2019, pp. 1016-1026, IEEE/ACM, 2019.
Aviv Kuvent, Shahar Maoz, and Jan O. Ringert. A Symbolic Justice Violations Transition System for Unrealizable GR(1) Specifications. Proc. of ESEC/FSE 2017, pp. 362-372, ACM, 2017.
Elizabeth Firman, Shahar Maoz, and Jan O. Ringert. Performance Heuristics for GR(1) Synthesis and Related Algorithms. Proc. of SYNT 2017: 6th Workshop on Synthesis (with CAV'17).
Shahar Maoz and Jan O. Ringert. On Well-Separation of GR(1) Specifications. Proc. of ESEC/FSE 2016, pp. 362-372, ACM, 2016.
Shahar Maoz, Or Pistiner, and Jan O. Ringert. Symbolic BDD and ADD Algorithms for Energy Games. Proc. of SYNT 2016: 5th Workshop on Synthesis (with CAV'16).
Shahar Maoz and Jan O. Ringert. GR(1) Synthesis for LTL Specification Patterns. Proc. of ESEC/FSE 2015, pp. 96-106, ACM, 2015.
Shahar Maoz and Jan O. Ringert. Synthesizing a Lego Forklift Controller in GR(1): A Case Study. Proc. of SYNT 2015: 4th Workshop on Synthesis (with CAV'15).
Spectra Tools includes application-specific Java code generation tailored to run on Lego NXT robots. It also includes an execution API for symbolic controllers. We have used it to execute Lego robots where the actual execution runs on a Raspberry Pi.