Spectra: a specification language for reactive systems

Shahar Maoz, Jan Oliver Ringert

Research output: Contribution to journalArticlepeer-review

Abstract

We introduce Spectra, 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. We present the language in detail and give an overview of its tool set. Together with the language and its tool set, we present four collections of many, non-trivial, large specifications, written by undergraduate computer science students for the development of autonomous Lego robots and additional example reactive systems. The collected specifications can serve as benchmarks for future studies on reactive synthesis. We present the specifications, with observations and lessons learned about the potential use of reactive synthesis by software engineers.

Original languageEnglish
Pages (from-to)1553-1586
Number of pages34
JournalSoftware and Systems Modeling
Volume20
Issue number5
DOIs
StatePublished - Oct 2021

Keywords

  • GR(1)
  • Reactive synthesis
  • Specification language

Fingerprint

Dive into the research topics of 'Spectra: a specification language for reactive systems'. Together they form a unique fingerprint.

Cite this