ltlcross: fix cross-checks for automata using Fin acceptance

Fixes #420 reported by Salomon Sickert.

* bin/ltlcross.cc: Call determine_unknown_acceptance().
* spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh: Document
that one_accepting_scc()==-1 can mean "don't know", and update
determine_unknown_acceptance() to set one_acc_scc_.
* tests/core/ltlcross3.test: Add test case.
* NEWS: Mention the fixes.
This commit is contained in:
Alexandre Duret-Lutz 2020-07-20 12:10:20 +02:00
parent 4db6a342da
commit 33b28c8151
5 changed files with 31 additions and 3 deletions

View file

@ -472,9 +472,15 @@ namespace spot
"does not support alternating automata");
auto& node = node_[s];
if (check_scc_emptiness(s))
node.rejecting_ = true;
{
node.rejecting_ = true;
}
else
node.accepting_ = true;
{
node.accepting_ = true;
if (one_acc_scc_ < 0)
one_acc_scc_ = s;
}
changed = true;
}
}