hoa: add a stutter-sensitive property

* src/twa/twa.hh: Support this new property.
* src/twaalgos/stutter.cc: Set it if needed.
* src/twaalgos/hoa.cc: Output it.
* src/tests/stutter-tgba.test: More tests.
This commit is contained in:
Alexandre Duret-Lutz 2015-05-10 16:54:44 +02:00
parent fe2fc88fc6
commit 6bc2fa2431
4 changed files with 36 additions and 7 deletions

View file

@ -715,7 +715,8 @@ namespace spot
bool state_based_acc:1; // State-based acceptance.
bool inherently_weak:1; // Weak automaton.
bool deterministic:1; // Deterministic automaton.
bool stutter_inv:1; // Stutter invariant
bool stutter_invariant:1; // Stutter invariant language.
bool stutter_sensitive:1; // Stutter sensitive language.
};
union
{
@ -798,12 +799,22 @@ namespace spot
bool is_stutter_invariant() const
{
return is.stutter_inv;
return is.stutter_invariant;
}
bool is_stutter_sensitive() const
{
return is.stutter_sensitive;
}
void prop_stutter_invariant(bool val = true)
{
is.stutter_inv = val;
is.stutter_invariant = val;
}
void prop_stutter_sensitive(bool val = true)
{
is.stutter_sensitive = val;
}
struct prop_set
@ -830,7 +841,10 @@ namespace spot
if (p.deterministic)
prop_deterministic(other->is_deterministic());
if (p.stutter_inv)
prop_stutter_invariant(other->is_stutter_invariant());
{
prop_stutter_invariant(other->is_stutter_invariant());
prop_stutter_sensitive(other->is_stutter_sensitive());
}
}
void prop_keep(prop_set p)
@ -841,6 +855,11 @@ namespace spot
prop_inherently_weak(false);
if (!p.deterministic)
prop_deterministic(false);
if (!p.stutter_inv)
{
prop_stutter_invariant(false);
prop_stutter_sensitive(false);
}
}
};