Running ltl2tgba -R1q -R1t -N would degeneralize before and

after the simulation-reduction.

Report from Tomáš Babiak <xbabiak@fi.muni.cz>.

* src/tgbaalgos/neverclaim.hh (never_claim_reachable): Take
a tgba as input.
* src/tgbaalgos/neverclaim.cc (never_claim_bfs): Call
state_is_accepting() only if this tgba turns out to be
a tgba_sba_proxy.  Otherwise check the acceptance of one
outgoing transition as we do in dotty_bfs since 2011-03-05.
* src/tgbatest/ltl2tgba.cc: Do not redegeneralize before
calling never_claim_reachable() if we know the automaton is
degeneralized already.
* src/tgbatest/ltl2tgba.test: Add a test case.
This commit is contained in:
Alexandre Duret-Lutz 2011-08-25 16:53:40 +02:00
parent 1c2450f609
commit d8ba172e6d
5 changed files with 61 additions and 13 deletions

View file

@ -1142,16 +1142,14 @@ main(int argc, char** argv)
case 8:
{
assert(degeneralize_opt == DegenSBA);
const spot::tgba_sba_proxy* s =
dynamic_cast<const spot::tgba_sba_proxy*>(a);
if (s)
spot::never_claim_reachable(std::cout, s, f, spin_comments);
if (assume_sba || dynamic_cast<const spot::tgba_sba_proxy*>(a))
spot::never_claim_reachable(std::cout, a, f, spin_comments);
else
{
// It is possible that we have applied other
// operations to the automaton since its initial
// degeneralization. Let's degeneralize again!
s = new spot::tgba_sba_proxy(a);
spot::tgba_sba_proxy* s = new spot::tgba_sba_proxy(a);
spot::never_claim_reachable(std::cout, s, f, spin_comments);
delete s;
}