bin: add --check=unambiguous

* src/bin/common_aoutput.cc: Add --check=unambiguous.
* src/twa/twa.hh: New unambiguous property.
* src/twaalgos/hoa.cc: Print it.
* src/twaalgos/ltl2tgba_fm.cc: Set it.
* src/twaalgos/isunamb.cc, src/twaalgos/isunamb.hh
(check_unambiguous): New function.
* src/tests/unambig.test: More tests.
This commit is contained in:
Alexandre Duret-Lutz 2015-05-10 17:39:26 +02:00
parent 98de84f3de
commit 487a86d06a
7 changed files with 47 additions and 7 deletions

View file

@ -715,6 +715,7 @@ namespace spot
bool state_based_acc:1; // State-based acceptance.
bool inherently_weak:1; // Weak automaton.
bool deterministic:1; // Deterministic automaton.
bool unambiguous:1; // Unambiguous automaton.
bool stutter_invariant:1; // Stutter invariant language.
bool stutter_sensitive:1; // Stutter sensitive language.
};
@ -797,6 +798,16 @@ namespace spot
is.deterministic = val;
}
bool is_unambiguous() const
{
return is.unambiguous;
}
void prop_unambiguous(bool val = true)
{
is.unambiguous = val;
}
bool is_stutter_invariant() const
{
return is.stutter_invariant;
@ -839,7 +850,10 @@ namespace spot
if (p.inherently_weak)
prop_inherently_weak(other->is_inherently_weak());
if (p.deterministic)
prop_deterministic(other->is_deterministic());
{
prop_deterministic(other->is_deterministic());
prop_unambiguous(other->is_unambiguous());
}
if (p.stutter_inv)
{
prop_stutter_invariant(other->is_stutter_invariant());
@ -854,7 +868,10 @@ namespace spot
if (!p.inherently_weak)
prop_inherently_weak(false);
if (!p.deterministic)
prop_deterministic(false);
{
prop_deterministic(false);
prop_unambiguous(false);
}
if (!p.stutter_inv)
{
prop_stutter_invariant(false);