  The synthesis of reactive systems from linear temporal logic (LTL)
specifications is an important aspect in the design of reliable software and
hardware. We present our adaption of the classic automata-theoretic approach to
LTL synthesis, implemented in the tool Strix which has won the two last
synthesis competitions (Syntcomp2018/2019). The presented approach is (1)
structured, meaning that the states used in the construction have a semantic
structure that is exploited in several ways, it performs a (2) forward
exploration such that it often constructs only a small subset of the reachable
states, and it is (3) incremental in the sense that it reuses results from
previous inconclusive solution attempts. Further, we present and study
different guiding heuristics that determine where to expand the on-demand
constructed arena. Moreover, we show several techniques for extracting an
implementation (Mealy machine or circuit) from the witness of the
tree-automaton emptiness check. Lastly, the chosen constructions use a symbolic
representation of the transition functions to reduce runtime and memory
consumption. We evaluate the proposed techniques on the Syntcomp2019 benchmark
set and show in more detail how the proposed techniques compare to the
techniques implemented in other leading LTL synthesis tools.
