* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Take an exprop

argument.  Consider all possible combinations of propositions when
generating arcs.  Suggested by Jean-Michel Couvreur.
* src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Adjust.
* src/tgbatest/ltl2tgba.cc: Honor -fx.
* src/tgbatest/spotlbtt.test: Exercise -fx.
* wrap/python/cgi/ltl2tgba.in: Support Couvreur/FM with exploded
properties.
This commit is contained in:
Alexandre Duret-Lutz 2004-02-09 23:23:29 +00:00
parent f2c6db6d49
commit 07ba321e0a
6 changed files with 100 additions and 39 deletions

View file

@ -61,6 +61,8 @@ syntax(char* prog)
<< "counter-example " << std::endl
<< " -f use Couvreur's FM algorithm for translation"
<< std::endl
<< " -fx use Couvreur's FM algorithm, with exploded properties"
<< std::endl
<< " -F read the formula from the file" << std::endl
<< " -m magic-search (implies -D), expect a counter-example"
<< std::endl
@ -93,6 +95,7 @@ main(int argc, char** argv)
bool debug_opt = false;
bool degeneralize_opt = false;
bool fm_opt = false;
bool fm_exprop_opt = false;
bool file_opt = false;
int output = 0;
int formula_index = 0;
@ -153,6 +156,11 @@ main(int argc, char** argv)
{
fm_opt = true;
}
else if (!strcmp(argv[formula_index], "-fx"))
{
fm_opt = true;
fm_exprop_opt = true;
}
else if (!strcmp(argv[formula_index], "-F"))
{
file_opt = true;
@ -265,7 +273,7 @@ main(int argc, char** argv)
else
{
if (fm_opt)
to_free = a = spot::ltl_to_tgba_fm(f, dict);
to_free = a = spot::ltl_to_tgba_fm(f, dict, fm_exprop_opt);
else
to_free = a = concrete = spot::ltl_to_tgba_lacim(f, dict);
spot::ltl::destroy(f);

View file

@ -70,6 +70,27 @@ Algorithm
Enabled = no
}
Algorithm
{
Name = "Spot (Couvreur -- FM exprop)"
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -fx -t'"
Enabled = yes
}
Algorithm
{
Name = "Spot (Couvreur -- FM exprop), degeneralized"
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -fx -t -D'"
Enabled = yes
}
Algorithm
{
Name = "Spot (Couvreur -- FM exprop), fake"
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -fx -T'"
Enabled = no
}
GlobalOptions
{
Rounds = 100