ltlsynt: add option --global-equivalence
Fixes issue #529. * spot/tl/apcollect.hh, spot/tl/apcollect.cc (collect_equivalent_literals): New function. * python/spot/impl.i: Adjust. * spot/tl/formula.hh, spot/tl/formula.cc (formula_ptr_less_than_bool_first): New comparison function. * spot/twaalgos/aiger.hh, spot/twaalgos/aiger.cc: Adjust to deal with equivalent assignments. * bin/ltlsynt.cc: Implement the new option. * tests/core/ltlsynt.test: Adjust test cases.
This commit is contained in:
parent
c016f561fa
commit
9bf1edd80d
10 changed files with 515 additions and 70 deletions
18
NEWS
18
NEWS
|
|
@ -16,13 +16,25 @@ New in spot 2.11.6.dev (not yet released)
|
|||
will replace boolean subformulas by fresh atomic propositions even
|
||||
if those subformulas share atomic propositions.
|
||||
|
||||
- ltlsynt will no check for output atomic propositions that always
|
||||
have the same polarity in the specification. When this happens,
|
||||
these output APs are replaced by true or false before running the
|
||||
- ltlsynt will now check for atomic propositions that always have
|
||||
the same polarity in the specification. When this happens, these
|
||||
output APs are replaced by true or false before running the
|
||||
synthesis pipeline, and the resulting game, Mealy machine, or
|
||||
Aiger circuit is eventually patched to include that constant
|
||||
output. This can be disabled with --polarity=no.
|
||||
|
||||
- ltlsynt will now check for atomic propositions that are specified
|
||||
as equivalent. When this is detected, equivalent atomic
|
||||
propositions are replaced by one representative of their class, to
|
||||
limit the number of different APs processed by the synthesis
|
||||
pipeline. The resulting game, Mealy machine, or Aiger circuit is
|
||||
eventually patched to include the removed APs. This optimization
|
||||
can be disabled with --global-equivalence=no. As an exception, an
|
||||
equivalence between input and output signals (such as G(in<->out))
|
||||
will be ignored if ltlsynt is configured to output a game (because
|
||||
patching the game a posteriori is cumbersome if the equivalence
|
||||
concerns different players).
|
||||
|
||||
Library:
|
||||
|
||||
- The following new trivial simplifications have been implemented for SEREs:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue