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 logo 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.

Spectra user guide and Spectra Tools

SYNTECH publications


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.

More on Spectra Tools for Lego robots