Translate Boolean formulae as BDD using the ltl_simplifier cache.

* src/ltlvisit/simplify.hh, src/ltlvisit/simplify.cc
(ltl_simplifier::ltl_simplifier, ltl_simplifier::get_dict): Make
it possible to supply and retrieve the dictionary used.
(ltl_simplifier::as_bdd): New function, exported from the cache.
* src/tgbaalgos/ltl2tgba_fm.cc (translate_dict): Store the
ltl_simplifier object.
(translate_dict::boolean_to_bdd): Call ltl_simplifier::as_bdd.
(translate_ratexp): New wrapper around the ratexp_trad_visitor,
calling boolean_to_bdd whenever possible.
(ratexp_trad_visitor): Do not deal with negated formulae, there
are necessarily Boolean and handled by translate_ratexp().
(ltl_visitor): Adjust to call translate_ratexp.
(ltl_to_tgba_fm): Adjust passing of the ltl_simplifier to the
translate_dict, and make sure everybody is using the same
dictionary.
* src/tgbatest/ltl2tgba.cc: Pass the dictionary to the
ltl_simplifier.
This commit is contained in:
Alexandre Duret-Lutz 2011-10-30 18:59:17 +01:00
parent 369ad87e50
commit 07e40e706a
4 changed files with 149 additions and 77 deletions

View file

@ -813,7 +813,7 @@ main(int argc, char** argv)
{
spot::ltl::ltl_simplifier* simp = 0;
if (simpltl)
simp = new spot::ltl::ltl_simplifier(redopt);
simp = new spot::ltl::ltl_simplifier(redopt, dict);
if (simp)
{