# Notes on a common format for LTL Synthesis

This notes are based on a discussion with Viktor Schuppan, Rüdiger Ehlers, and Barbara Jobstmann.

In order to obtain a common format, we have to discuss the following topics:

1. Subset definitions (e.g., GR-1, Safety, Reachability,…)
2. Necessary abbreviations: assume, assert, define, other shortcuts? (see Lily syntax)
3. Order for BDD-based approaches
4. XML-format (see Unbeast)
5. LTL syntax (e.g., Wring syntax from below)
6. Title and Meta-information about case studies
7. Information about the target: Mealy, Moore, realizability
8. Regular expressions or automata?
9. How to embed controller synthesis? Ways to specify partial models (see NuGat/NuSMV)

FORMULA ::= TERM {BINARYOP TERM}
TERM ::= {ATOM | (FORMULA) | UNARYOP FORMULA | TEMPORALOP (FORMULA)}
BINARYOP ::= * | + | ^ | → | ↔ | U | R | V
UNARYOP ::= !
TEMPORALOP ::= G | F | X
ATOM ::= VAR=VALUE
VAR ::= \w+
VALUE ::= 0 | 1

Furthermore, Wring allows you to use the keyword define to avoid writing the same formula multiple times.

Extensions in Lily:

• A formula can range over several lines. A semi-colon indicates the end of the formula.
• Each formula can be prefixed with the keyword assume or assert
• In general, a semi-colon acts as conjunction between formulas unless the assume/assert keywords are used. Then, the list of formulas corresponds to an implication between a conjunction of all formulas assumed and a conjunction of all formulas asserted. E.g.,
assume G(a=1);
assume G(b=1);
assert G(c=1);
corresponds to (G(a=1) * G(b=1)) → G(c=1)