relabel_bse: rework to simplify more patterns
Rework the way we compute and use cut-points to catch more patterns we can rewrite. Also Use BDDs to check if a Boolean sub-expression is false or true. Fixes issue #540. * spot/tl/relabel.hh: Update documentation * spot/tl/relabel.cc (relabel_bse): Rework. * tests/core/ltlfilt.test: Add more test cases. * tests/python/_mealy.ipynb: Update. * NEWS: Mention the change.
This commit is contained in:
parent
cbb981ffd5
commit
7149521f48
5 changed files with 305 additions and 159 deletions
|
|
@ -53,13 +53,13 @@ namespace spot
|
|||
/// proposition for each maximal Boolean subexpression encountered,
|
||||
/// even if they overlap (i.e., share common atomic
|
||||
/// propositions). For instance `(a & b & c) U (c & d & e)` will be
|
||||
/// simply be relabeled as `p0 U p1`. This kind of renaming to not
|
||||
/// preserves the
|
||||
/// simply be relabeled as `p0 U p1`. This kind of renaming does not
|
||||
/// preserve the satisfiability of the input formula.
|
||||
///
|
||||
/// The relabel_bse() version will make sure that the replaced
|
||||
/// subexpressions do not share atomic propositions. For instance
|
||||
/// `(a & b & c) U (c & d & e)` will be simply be relabeled as
|
||||
/// `(p0 & p1) U (p1 & p2)`, were `p1` replaces `c` and the rest
|
||||
/// `(a & b & c) U (!c & d & e)` will be simply be relabeled as
|
||||
/// `(p0 & p1) U (!p1 & p2)`, were `p1` replaces `c` and the rest
|
||||
/// is obvious.
|
||||
///
|
||||
/// @{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue