* src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_fm.cc

(ltl_to_tgba_fm): Add a new option "containment_checks" to enable
some language containment checks (via emptiness checks) during the
translation.  This first attempt currently only use containment
checks to merge states bisimulating each other.
* src/tgbatest/ltl2tgba.cc: Bind this to option "-c".
* src/tgbatest/spotlbtt.test: Check it.
This commit is contained in:
Alexandre Duret-Lutz 2006-07-13 18:42:55 +00:00
parent 49a78724a4
commit 85c5c870db
5 changed files with 186 additions and 17 deletions

View file

@ -65,6 +65,8 @@ syntax(char* prog)
<< " -A same as -a, but as a set" << std::endl
<< " -b display the automaton in the format of spot"
<< std::endl
<< " -c enable language containment checks (implies -f)"
<< std::endl
<< " -d turn on traces during parsing" << std::endl
<< " -D degeneralize the automaton as a TBA" << std::endl
<< " -DS degeneralize the automaton as an SBA" << std::endl
@ -169,6 +171,7 @@ main(int argc, char** argv)
bool graph_run_opt = false;
bool graph_run_tgba_opt = false;
bool opt_reduce = false;
bool containment = false;
spot::ltl::environment& env(spot::ltl::default_environment::instance());
spot::ltl::atomic_prop_set* unobservables = 0;
spot::tgba_explicit* system = 0;
@ -199,6 +202,11 @@ main(int argc, char** argv)
{
output = 7;
}
else if (!strcmp(argv[formula_index], "-c"))
{
containment = true;
fm_opt = true;
}
else if (!strcmp(argv[formula_index], "-d"))
{
debug_opt = true;
@ -499,7 +507,7 @@ main(int argc, char** argv)
fm_symb_merge_opt,
post_branching,
fair_loop_approx, unobservables,
fm_red);
fm_red, containment);
else
to_free = a = concrete = spot::ltl_to_tgba_lacim(f, dict);
}

View file

@ -1,5 +1,5 @@
#!/bin/sh
# Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
# Copyright (C) 2003, 2004, 2005, 2006 Laboratoire d'Informatique de Paris 6 (LIP6),
# département Systèmes Répartis Coopératifs (SRC), Université Pierre
# et Marie Curie.
#
@ -68,6 +68,14 @@ Algorithm
Enabled = yes
}
Algorithm
{
Name = "Spot (Couvreur -- FM) containments"
Path = "${LBTT_TRANSLATE}"
Parameters = "--spot './ltl2tgba -F -f -c -t'"
Enabled = yes
}
Algorithm
{
Name = "Spot (Couvreur -- FM), basic reduction of formula"
@ -100,6 +108,15 @@ Algorithm
Enabled = yes
}
Algorithm
{
Name = "Spot (Couvreur -- FM) containments + reduction of formula (pre reduction)"
Path = "${LBTT_TRANSLATE}"
Parameters = "--spot './ltl2tgba -r4 -F -f -c -t'"
Enabled = yes
}
Algorithm
{
Name = "Spot (Couvreur -- FM), reduction of formula in FM"