21#include <spot/ta/taproduct.hh>
22#include <spot/misc/optionmap.hh>
23#include <spot/twaalgos/emptiness_stats.hh>
33 ta_succ_iterator_product*> pair_state_iter;
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_;
Emptiness-check statistics.
Definition: emptiness_stats.hh:57
Manage a map of options.
Definition: optionmap.hh:34
Abstract class for states.
Definition: twa.hh:47
Check whether the language of a product (spot::ta_product) between a Kripke structure and a TA is emp...
Definition: emptinessta.hh:72
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 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:193
Strict Weak Ordering for state*.
Definition: twa.hh:124