21#include <spot/ta/taproduct.hh>
22#include <spot/misc/optionmap.hh>
23#include <spot/twaalgos/emptiness_stats.hh>
32 typedef std::pair<
const spot::state*,
71 class SPOT_API ta_check :
public ec_statistics
97 check(
bool disable_second_pass =
false,
98 bool disable_heuristic_for_livelock_detection =
false);
113 clear(hash_type& h, std::stack<pair_state_iter> todo, std::queue<
117 clear(hash_type& h, std::stack<pair_state_iter> todo,
124 hash_type& h,
int h_livelock_root, std::set<
const state*,
127 const_ta_product_ptr
a_;
131 bool is_full_2_pass_;
Manage a map of options.
Definition optionmap.hh:34
Abstract class for states.
Definition twa.hh:47
bool livelock_detection(const const_ta_product_ptr &t)
Check whether the product automaton contains a livelock-accepting run Return false if the product aut...
bool heuristic_livelock_detection(const state *stuttering_succ, hash_type &h, int h_livelock_root, std::set< const state *, state_ptr_less_than > liveset_curr)
std::ostream & print_stats(std::ostream &os) const
Print statistics, if any.
const_ta_product_ptr a_
The automaton.
Definition emptinessta.hh:127
bool check(bool disable_second_pass=false, bool disable_heuristic_for_livelock_detection=false)
Check whether the TA product automaton contains an accepting run: it detects the two kinds of accepti...
option_map o_
The options.
Definition emptinessta.hh:128
Iterate over the successors of a product computed on the fly.
Definition taproduct.hh:74
Iterate over the successors of a state.
Definition ta.hh:197
Definition automata.hh:26
std::unordered_map< const state *, val, state_ptr_hash, state_ptr_equal > state_map
Unordered map of abstract states.
Definition twa.hh:192
Strict Weak Ordering for state*.
Definition twa.hh:124