  Given a specification of linear-time temporal logic interpreted over finite
traces (LTLf), the reactive synthesis problem asks to find a
finitely-representable, terminating controller that reacts to the
uncontrollable actions of an environment in order to enforce a desired system
specification. In this paper we study, for the first time, the reactive
synthesis problem for DECLARE - a fragment of LTLf extensively used both in
theory and practice for specifying declarative, constraint-based business
processes. We provide a threefold contribution. First, we give a naive, doubly
exponential time synthesis algorithm for this problem. Second, we show how an
arbitrary DECLARE specification can be compactly encoded into an equivalent
pure past one in LTLf, and we exploit this to define an optimized, singly
exponential time algorithm for DECLARE synthesis. Third, we derive a symbolic
version of this algorithm, by introducing a novel translation of pure-past
temporal formulas into symbolic deterministic finite automata.
