Replace most uses of scc_map by scc_info.

This involves reimplementing some algorithms using tgba_digraph, and
implementing an explicit product that takes two tgba_digraphs and
produces a tgba_digraph.

* src/tgbaalgos/product.cc, src/tgbaalgos/product.hh: New files.
* src/tgbaalgos/Makefile.am: Adjust.
* src/bin/ltlcross.cc, src/tgba/tgba.cc, src/tgba/tgba.hh,
src/tgba/tgbasafracomplement.cc, src/tgba/tgbasafracomplement.hh,
src/tgbaalgos/cycles.cc, src/tgbaalgos/cycles.hh,
src/tgbaalgos/degen.cc, src/tgbaalgos/degen.hh,
src/tgbaalgos/isweakscc.cc, src/tgbaalgos/isweakscc.hh,
src/tgbaalgos/minimize.cc, src/tgbaalgos/minimize.hh,
src/tgbaalgos/powerset.cc, src/tgbaalgos/powerset.hh,
src/tgbaalgos/safety.cc, src/tgbaalgos/safety.hh,
src/tgbaalgos/sccinfo.cc, src/tgbaalgos/sccinfo.hh,
src/tgbatest/complementation.cc, src/tgbatest/emptchk.cc,
src/tgbatest/ltl2ta.test, src/tgbatest/ltl2tgba.cc,
src/tgbatest/randtgba.cc: Update to use scc_info and/or tgba_digraph.
This commit is contained in:
Alexandre Duret-Lutz 2014-10-07 18:21:37 +02:00
parent b6745482af
commit 2fb436a174
27 changed files with 497 additions and 394 deletions

View file

@ -46,7 +46,7 @@
#include "misc/random.hh"
#include "misc/optionmap.hh"
#include "tgbaalgos/degen.hh"
#include "tgba/tgbaproduct.hh"
#include "tgbaalgos/product.hh"
#include "misc/timer.hh"
#include "tgbaalgos/ltl2tgba_fm.hh"
@ -85,8 +85,8 @@ const char* default_algos[] = {
std::vector<ec_algo> ec_algos;
spot::emptiness_check_ptr
cons_emptiness_check(int num, spot::const_tgba_ptr a,
const spot::const_tgba_ptr& degen,
cons_emptiness_check(int num, spot::const_tgba_digraph_ptr a,
const spot::const_tgba_digraph_ptr& degen,
unsigned int n_acc)
{
auto inst = ec_algos[num].inst;
@ -579,8 +579,8 @@ main(int argc, char** argv)
bool stop_on_first_difference = false;
spot::tgba_ptr formula = nullptr;
spot::tgba_ptr product = nullptr;
spot::tgba_digraph_ptr formula = nullptr;
spot::tgba_digraph_ptr product = nullptr;
spot::option_map options;
@ -906,7 +906,7 @@ main(int argc, char** argv)
spot::srand(opt_ec_seed);
spot::tgba_ptr a =
spot::tgba_digraph_ptr a =
spot::random_graph(opt_n, opt_d, apf, dict,
opt_n_acc, opt_a, opt_t);
if (formula)
@ -925,7 +925,7 @@ main(int argc, char** argv)
}
else
{
spot::tgba_ptr degen = nullptr;
spot::tgba_digraph_ptr degen = nullptr;
if (opt_degen && real_n_acc > 1)
degen = degeneralize_tba(a);