ltl_to_tgba_fm: Build a tgba_digraph instead of a tgba_explicit_formula

The conversion is not complete, because the conversion from SERE to DRA
used for the closure operator is still building a tgba_explicit_formula.

* src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_fm.hh: Return
a tgba_digraph.
* src/priv/acccompl.cc: Simplify.
* src/graph/ngraph.hh: Add a way to iterate over all names.
* src/tgba/tgbagraph.hh (compute_support_conditions): Return something
useful.  It's actually used by the constructor of testing automata.
* src/tgbatest/wdba.test: Adjust to the fact that state are not
labeled by formulas anymore.
* src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc: Do not try to enable
UTF8 on automata anymore.
This commit is contained in:
Alexandre Duret-Lutz 2014-08-06 18:31:18 +02:00
parent 38887f4960
commit 7b23691629
8 changed files with 77 additions and 97 deletions

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2012 Laboratoire de Recherche et Developpement de
// l'Epita (LRDE)
// Copyright (C) 2012, 2014 Laboratoire de Recherche et Developpement
// de l'Epita (LRDE)
//
// This file is part of Spot, a model checking library.
//
@ -18,6 +18,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "acccompl.hh"
#include <cassert>
namespace spot
{
@ -60,6 +61,8 @@ namespace spot
if (acc == bddtrue)
return all_;
assert(acc != bddfalse);
// Since we never cache a unique positive bdd, we can reuse the
// same cache. In fact the only kind of acc we will receive in
// this method, are a conjunction of positive acceptance
@ -70,12 +73,13 @@ namespace spot
bdd res = all_;
bdd cond = acc;
bdd neg = bddtrue;
while (cond != bddtrue)
{
res &= bdd_nithvar(bdd_var(cond));
neg &= bdd_nithvar(bdd_var(cond));
cond = bdd_high(cond);
}
res &= neg;
cache_[acc] = res;
return res;