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:
Ala-Eddine Ben-Salem 2011-07-05 21:26:22 +02:00 committed by Alexandre Duret-Lutz
parent c7f4b8e262
commit 83e7f0fa18
14 changed files with 726 additions and 34 deletions

View file

@ -70,7 +70,6 @@ namespace spot
virtual bool
is_livelock_accepting_state(const spot::state* s) const = 0;
virtual bool
is_initial_state(const spot::state* s) const = 0;
@ -80,6 +79,16 @@ namespace spot
virtual void
free_state(const spot::state* s) const = 0;
/// \brief Return the set of all acceptance conditions used
/// by this automaton.
///
/// The goal of the emptiness check is to ensure that
/// a strongly connected component walks through each
/// of these acceptiong conditions. I.e., the union
/// of the acceptiong conditions of all transition in
/// the SCC should be equal to the result of this function.
virtual bdd all_acceptance_conditions() const = 0;
};
/// Successor iterators used by spot::ta.
@ -107,11 +116,8 @@ namespace spot
is_stuttering_transition() const = 0;
bdd
current_acceptance_conditions() const
{
assert(!done());
return bddfalse;
}
current_acceptance_conditions() const = 0;
};
// A stack of Strongly-Connected Components
@ -128,6 +134,10 @@ namespace spot
bool is_accepting;
/// The bdd condition is the union of all acceptance conditions of
/// transitions which connect the states of the connected component.
bdd condition;
std::list<state*> rem;
};