GTA (Generalized Testing Automata) implementation
* src/ta/ta.cc, src/ta/ta.hh, src/ta/taexplicit.cc, src/ta/taexplicit.hh, src/ta/taproduct.cc, src/ta/taproduct.hh, src/taalgos/Makefile.am, src/taalgos/dotty.cc, src/taalgos/emptinessta.cc, src/taalgos/minimize.cc, src/taalgos/minimize.hh, src/taalgos/tgba2ta.cc, src/taalgos/tgba2ta.hh, src/tgbatest/ltl2tgba.cc: changes introduced to add a new form of TA called GTA (Generalized Testing Automata). GTA is a TA with acceptance- conditions added on transitions.
This commit is contained in:
parent
c7f4b8e262
commit
83e7f0fa18
14 changed files with 726 additions and 34 deletions
|
|
@ -66,7 +66,7 @@
|
|||
#include "kripkeparse/public.hh"
|
||||
#include "tgbaalgos/simulation.hh"
|
||||
|
||||
#include "taalgos/sba2ta.hh"
|
||||
#include "taalgos/tgba2ta.hh"
|
||||
#include "taalgos/dotty.hh"
|
||||
#include "taalgos/stats.hh"
|
||||
|
||||
|
|
@ -1091,11 +1091,11 @@ main(int argc, char** argv)
|
|||
|
||||
if (ta_opt)
|
||||
{
|
||||
const spot::tgba_sba_proxy* degeneralized_new = 0;
|
||||
const spot::tgba_sba_proxy* degeneralized =
|
||||
dynamic_cast<const spot::tgba_sba_proxy*> (a);
|
||||
if (degeneralized == 0)
|
||||
degeneralized_new = degeneralized = new spot::tgba_sba_proxy(a);
|
||||
// const spot::tgba_sba_proxy* degeneralized_new = 0;
|
||||
// const spot::tgba_sba_proxy* degeneralized =
|
||||
// dynamic_cast<const spot::tgba_sba_proxy*> (a);
|
||||
// if (degeneralized == 0)
|
||||
// degeneralized_new = degeneralized = new spot::tgba_sba_proxy(a);
|
||||
|
||||
spot::ltl::atomic_prop_set* aps = atomic_prop_collect(f, 0);
|
||||
|
||||
|
|
@ -1104,15 +1104,19 @@ main(int argc, char** argv)
|
|||
!= aps->end(); ++i)
|
||||
{
|
||||
bdd atomic_prop = bdd_ithvar(
|
||||
(degeneralized->get_dict())->var_map[*i]);
|
||||
(a->get_dict())->var_map[*i]);
|
||||
|
||||
atomic_props_set_bdd &= atomic_prop;
|
||||
|
||||
}
|
||||
delete aps;
|
||||
|
||||
spot::ta* testing_automata = sba_to_ta(degeneralized, atomic_props_set_bdd, opt_with_artificial_initial_state, opt_with_artificial_livelock);
|
||||
if (opt_minimize) testing_automata = minimize_ta(testing_automata);
|
||||
spot::ta* testing_automata = tgba_to_ta(a, atomic_props_set_bdd, opt_with_artificial_initial_state, opt_with_artificial_livelock, degeneralize_opt == DegenSBA);
|
||||
spot::ta* testing_automata_nm = 0;
|
||||
if (opt_minimize) {
|
||||
testing_automata_nm = testing_automata;
|
||||
testing_automata = minimize_ta(testing_automata);
|
||||
}
|
||||
|
||||
if (output != -1)
|
||||
{
|
||||
|
|
@ -1130,6 +1134,8 @@ main(int argc, char** argv)
|
|||
}
|
||||
tm.stop("producing output");
|
||||
}
|
||||
|
||||
delete testing_automata_nm;
|
||||
delete testing_automata;
|
||||
output = -1;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue