Add support for unambiguous automata

* src/twaalgos/ltl2tgba_fm.hh, src/twaalgos/ltl2tgba_fm.cc: Implement
generation of unambiguous automata.
* src/tests/ltl2tgba.cc: Add option -fu to test it.
* src/bin/common_post.cc: Adjust the group of options so we can easily
add more from ltl2tgba.cc.
* src/bin/ltl2tgba.cc: Add support for -U and --unambigous.
* src/twaalgos/translate.cc, src/twaalgos/translate.hh: Add support
for Unambiguous.
* src/tests/ltlcross.test, src/tests/ltlcross2.test: Test both
bin/ltl2tgba and tgbatest/ltl2tgba.
* NEWS: Mention the change.
This commit is contained in:
Alexandre Duret-Lutz 2015-05-07 21:10:23 +02:00
parent f55211336e
commit 9f3a7a49de
10 changed files with 154 additions and 23 deletions

View file

@ -146,6 +146,7 @@ syntax(char* prog)
<< "Options for Couvreur's FM algorithm (-f):" << std::endl
<< " -fr reduce formula at each step of FM" << std::endl
<< " as specified with the -r{1..7} options" << std::endl
<< " -fu build unambiguous automata" << std::endl
<< " -L fair-loop approximation (implies -f)" << std::endl
<< " -p branching postponement (implies -f)" << std::endl
<< " -U[PROPS] consider atomic properties of the formula as "
@ -330,6 +331,7 @@ checked_main(int argc, char** argv)
bool fm_red = false;
bool fm_exprop_opt = false;
bool fm_symb_merge_opt = true;
bool fm_unambiguous = false;
bool file_opt = false;
bool degen_reset = true;
bool degen_order = false;
@ -512,6 +514,12 @@ checked_main(int argc, char** argv)
fm_red = true;
translation = TransFM;
}
else if (!strcmp(argv[formula_index], "-fu"))
{
fm_unambiguous = true;
fm_exprop_opt = true;
translation = TransFM;
}
else if (!strcmp(argv[formula_index], "-F"))
{
file_opt = true;
@ -1060,7 +1068,8 @@ checked_main(int argc, char** argv)
post_branching,
fair_loop_approx,
unobservables,
fm_red ? simp : 0);
fm_red ? simp : 0,
fm_unambiguous);
break;
case TransCompo:
{

View file

@ -41,6 +41,7 @@ EOF
../../bin/ltlcross --products=2 \
"$ltl2tgba -t -f %f > %T" \
"$ltl2tgba -t -f -y %f > %T" \
"$ltl2tgba -t -f -fu %f > %T" \
"$ltl2tgba -t -f -r4 %f > %T" \
"$ltl2tgba -t -f -R3 %f > %T" \
"$ltl2tgba -t -f -R3 -Rm %f > %T" \

View file

@ -43,4 +43,6 @@ ltl2tgba=../../bin/ltl2tgba
"$ltl2tgba --spin=6 --ba --medium %f > %N" \
"$ltl2tgba --hoa -BDC %f > %H" \
"$ltl2tgba --lbtt -BC %f > %T" \
"$ltl2tgba --lbtt --unambiguous --low %f > %T" \
"$ltl2tgba --lbtt --unambiguous --high %f > %T" \
--json=output.json --csv=output.csv