acc: recognize parity acceptance
It has two modes: strict or not. In strict mode (tested in hoaparse.test), the acceptance formula has to match exactly the one given in the HOA spec. In non-strict mode (tested in accparse2.py) any equivalent formula is accepted. * src/twa/acc.cc, src/twa/acc.hh (acc_cond::is_parity): New method. * src/twaalgos/hoa.cc: Use it. * src/tests/hoaparse.test: Test it. * wrap/python/spot_impl.i: Bind it. * wrap/python/tests/accparse2.py: New file. * wrap/python/tests/Makefile.am: Add it.
This commit is contained in:
parent
704eaf26c2
commit
04171207e6
7 changed files with 287 additions and 0 deletions
|
|
@ -905,6 +905,13 @@ namespace spot
|
|||
// Return the number of Inf in each pair.
|
||||
bool is_generalized_rabin(std::vector<unsigned>& pairs) const;
|
||||
|
||||
// If EQUIV is false, this return true iff the acceptance
|
||||
// condition is a parity condition written in the canonical way
|
||||
// given in the HOA specifications. If EQUIV is true, then we
|
||||
// check whether the condition is logically equivalent to some
|
||||
// parity acceptance condition.
|
||||
bool is_parity(bool& max, bool& odd, bool equiv = false) const;
|
||||
|
||||
static acc_code generalized_buchi(unsigned n)
|
||||
{
|
||||
mark_t m((1U << n) - 1);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue