ltl: rename is_X_free() into is_syntactic_stutter_invariant()
and adjust it to detect siPSL formulas, as in the paper of Dax et al. (ATVA'09). For issue #51. * src/ltlast/atomic_prop.cc, src/ltlast/binop.cc, src/ltlast/bunop.cc, src/ltlast/constant.cc, src/ltlast/formula.cc, src/ltlast/formula.hh, src/ltlast/multop.cc, src/ltlast/unop.cc: Rename the property, and adjust its computation on siSERE. * src/ltlvisit/remove_x.cc, src/ltlvisit/simplify.cc, src/tgbaalgos/stutter.cc: Adjust to new names. * src/bin/ltlfilt.cc: Add option --syntactic-sutter-invariant. * src/ltltest/kind.test: Update tests and add some new.
This commit is contained in:
parent
a79db4eefe
commit
34f1601b9b
13 changed files with 185 additions and 86 deletions
|
|
@ -2805,7 +2805,7 @@ namespace spot
|
|||
// a & (Xa U b) = b M a
|
||||
// a & (b | X(b R a)) = b R a
|
||||
// a & (b | X(b M a)) = b M a
|
||||
if (!mo->is_X_free())
|
||||
if (!mo->is_syntactic_stutter_invariant()) // Skip if no X.
|
||||
{
|
||||
typedef std::unordered_set<const formula*,
|
||||
ptr_hash<formula>> fset_t;
|
||||
|
|
@ -2825,7 +2825,7 @@ namespace spot
|
|||
{
|
||||
if (!(*res)[n])
|
||||
continue;
|
||||
if ((*res)[n]->is_X_free())
|
||||
if ((*res)[n]->is_syntactic_stutter_invariant())
|
||||
continue;
|
||||
|
||||
const formula* xarg = is_XWU((*res)[n]);
|
||||
|
|
@ -3530,7 +3530,7 @@ namespace spot
|
|||
// a | (Xa M b) = b U a
|
||||
// a | (b & X(b W a)) = b W a
|
||||
// a | (b & X(b U a)) = b U a
|
||||
if (!mo->is_X_free())
|
||||
if (!mo->is_syntactic_stutter_invariant()) // Skip if no X
|
||||
{
|
||||
typedef std::unordered_set<const formula*,
|
||||
ptr_hash<formula>> fset_t;
|
||||
|
|
@ -3551,7 +3551,7 @@ namespace spot
|
|||
{
|
||||
if (!(*res)[n])
|
||||
continue;
|
||||
if ((*res)[n]->is_X_free())
|
||||
if ((*res)[n]->is_syntactic_stutter_invariant())
|
||||
continue;
|
||||
|
||||
const formula* xarg = is_XRM((*res)[n]);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue