Add Testing Automata Product & Emptiness Check
* src/taalgos/stats.hh, src/taalgos/stats.cc: Compute statistics for a automaton. * src/ta/ta.hh, src/ta/ta.cc: Abstract representation of a Testing Automata(TA) * src/ta/taexplicit.hh, src/ta/taexplicit.cc: Explicit representation of a Testing Automata (TA) * src/taalgos/dotty.cc: Print a TA in dot format. * src/taalgos/reachiter.hh, src/taalgos/reachiter.cc: Iterate over all reachable states of a TA * src/taalgos/sba2ta.cc: implements the construction of a TA from a BA (Buchi Automata) * src/tgbatest/ltl2tgba.cc: add commands to test the TA implementation * src/taalgos/emptinessta.hh, src/taalgos/emptinessta.cc: implementation of the TA emptiness-check algorithm * src/ta/taproduct.hh, src/ta/taproduct.cc: representation of the product (automaton) between a TA and a Kripke structure. * src/ta/Makefile.am, src/taalgos/Makefile.am: add them
This commit is contained in:
parent
ba47b821c6
commit
81e80e6069
17 changed files with 1779 additions and 209 deletions
30
src/ta/ta.hh
30
src/ta/ta.hh
|
|
@ -46,29 +46,35 @@ namespace spot
|
|||
|
||||
typedef std::set<state*, state_ptr_less_than> states_set_t;
|
||||
|
||||
virtual const states_set_t*
|
||||
get_initial_states_set() const = 0;
|
||||
virtual const states_set_t
|
||||
get_initial_states_set() const = 0;
|
||||
|
||||
virtual ta_succ_iterator*
|
||||
succ_iter(const spot::state* s) const = 0;
|
||||
succ_iter(const spot::state* s) const = 0;
|
||||
|
||||
virtual ta_succ_iterator*
|
||||
succ_iter(const spot::state* s, bdd condition) const = 0;
|
||||
|
||||
virtual bdd_dict*
|
||||
get_dict() const = 0;
|
||||
get_dict() const = 0;
|
||||
|
||||
virtual std::string
|
||||
format_state(const spot::state* s) const = 0;
|
||||
format_state(const spot::state* s) const = 0;
|
||||
|
||||
virtual bool
|
||||
is_accepting_state(const spot::state* s) const = 0;
|
||||
is_accepting_state(const spot::state* s) const = 0;
|
||||
|
||||
virtual bool
|
||||
is_livelock_accepting_state(const spot::state* s) const = 0;
|
||||
is_livelock_accepting_state(const spot::state* s) const = 0;
|
||||
|
||||
virtual bool
|
||||
is_initial_state(const spot::state* s) const = 0;
|
||||
is_initial_state(const spot::state* s) const = 0;
|
||||
|
||||
virtual bdd
|
||||
get_state_condition(const spot::state* s) const = 0;
|
||||
get_state_condition(const spot::state* s) const = 0;
|
||||
|
||||
virtual void
|
||||
free_state(const spot::state* s) const = 0;
|
||||
|
||||
};
|
||||
|
||||
|
|
@ -93,6 +99,8 @@ namespace spot
|
|||
virtual bdd
|
||||
current_condition() const = 0;
|
||||
|
||||
virtual bool
|
||||
is_stuttering_transition() const = 0;
|
||||
|
||||
bdd
|
||||
current_acceptance_conditions() const
|
||||
|
|
@ -103,7 +111,7 @@ namespace spot
|
|||
};
|
||||
|
||||
// A stack of Strongly-Connected Components
|
||||
class sscc_stack
|
||||
class scc_stack_ta
|
||||
{
|
||||
public:
|
||||
struct connected_component
|
||||
|
|
@ -116,8 +124,6 @@ namespace spot
|
|||
|
||||
bool is_accepting;
|
||||
|
||||
bool is_initial;
|
||||
|
||||
std::list<state*> rem;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue