Spectra: a specification language for reactive systems

Shahar Maoz*, Jan Oliver Ringert

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review


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
Issue number5
StatePublished - Oct 2021


  • GR(1)
  • Reactive synthesis
  • Specification language


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

Cite this