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

@ -327,6 +327,11 @@ diff foo expected
# This command used to crash. Report from František Blahoudek.
run 0 ltlcross --verbose --no-checks -f 'FGa' 'ltl2tgba'
# In spot 2.9 and 2.9.1 the following command used to report a bug
# that did not exist. Issue #420.
ltlcross --csv=/dev/null ltl2tgba 'ltl2tgba -D -G' --states=5 \
-f '(G(F(((a) & (X(X(a)))) | ((!(a)) & (X(X(!(a))))))))'
# The CSV file should not talk about product if --products=0
ltlcross --color --products=0 ltl2tgba -f GFa -f FGa --csv=out.csv
grep product out.csv && exit 1