This class implements the sequential emptiness check as presented in "Three SCC-based Emptiness Checks for Generalized
B\¨uchi Automata" (Renault et al, LPAR 2013). Among the three emptiness check that has been proposed we opted to implement the Gabow's one.
More...
#include <spot/mc/ec.hh>
|
typedef std::unordered_map< const product_state, int, product_state_hash, product_state_equal > | visited_map |
|
|
| ec_renault13lpar (kripkecube< State, SuccIterator > &sys, twacube_ptr twa, unsigned tid, bool stop) |
|
void | setup () |
| This method is called at the begining of the exploration. here we do not need to setup any information. More...
|
|
bool | push_state (product_state, unsigned dfsnum, acc_cond::mark_t cond) |
| This method is called to notify the emptiness checks that a new state has been discovered. If this method return false, the state will not be explored. The parameter dfsnum specify an unique id for the state s. Parameter cond represents The value on the ingoing edge to s. More...
|
|
bool | pop_state (product_state, unsigned top_dfsnum, bool, product_state, unsigned) |
| This method is called to notify the emptiness checks that a state will be popped. If the method return false, then the state will be popped. Otherwise the state newtop will become the new top of the DFS stack. If the state top is the only one in the DFS stak, the parameter is_initial is set to true and both newtop and newtop_dfsnum have inconsistency values. More...
|
|
bool | update (product_state, unsigned, product_state, unsigned dst_dfsnum, acc_cond::mark_t cond) |
| This method is called for every closing, back, or forward edge. Return true if a counterexample has been found. More...
|
|
bool | counterexample_found () |
|
std::string | trace () |
|
virtual istats | stats () override |
|
ec_renault13lpar< State, SuccIterator, StateHash, StateEqual > & | self () |
| In order to implement "mixin paradigm", we must be abble to access the acual definition of the emptiness check that, in turn, has to access local variables. More...
|
|
bool | run () |
| The main function that will perform the product on-the-fly and call the emptiness check when necessary. More...
|
|
unsigned int | states () |
|
unsigned int | trans () |
|
std::string | counterexample () |
|
|
kripkecube< State, SuccIterator > & | sys_ |
|
twacube_ptr | twa_ |
|
std::vector< todo_element > | todo |
|
visited_map | map |
|
unsigned int | dfs_number |
|
unsigned int | transitions |
|
unsigned | tid_ |
|
bool & | stop_ |
|
|
void | forward_iterators (bool just_pushed) |
| Find the first couple of iterator (from the top of the todo stack) that intersect. The parameter indicates wheter the state has just been pushed since the underlying job is slightly different. More...
|
|
template<typename State, typename SuccIterator, typename StateHash, typename StateEqual>
class spot::ec_renault13lpar< State, SuccIterator, StateHash, StateEqual >
This class implements the sequential emptiness check as presented in "Three SCC-based Emptiness Checks for Generalized
B\¨uchi Automata" (Renault et al, LPAR 2013). Among the three emptiness check that has been proposed we opted to implement the Gabow's one.
◆ forward_iterators()
void spot::intersect< State, SuccIterator, StateHash, StateEqual, ec_renault13lpar< State, SuccIterator, StateHash, StateEqual > >::forward_iterators |
( |
bool |
just_pushed | ) |
|
|
inlineprotectedinherited |
Find the first couple of iterator (from the top of the todo stack) that intersect. The parameter indicates wheter the state has just been pushed since the underlying job is slightly different.
◆ pop_state()
template<typename State , typename SuccIterator , typename StateHash , typename StateEqual >
bool spot::ec_renault13lpar< State, SuccIterator, StateHash, StateEqual >::pop_state |
( |
product_state |
, |
|
|
unsigned |
top_dfsnum, |
|
|
bool |
, |
|
|
product_state |
, |
|
|
unsigned |
|
|
) |
| |
|
inline |
This method is called to notify the emptiness checks that a state will be popped. If the method return false, then the state will be popped. Otherwise the state newtop will become the new top of the DFS stack. If the state top is the only one in the DFS stak, the parameter is_initial is set to true and both newtop and newtop_dfsnum have inconsistency values.
◆ push_state()
template<typename State , typename SuccIterator , typename StateHash , typename StateEqual >
This method is called to notify the emptiness checks that a new state has been discovered. If this method return false, the state will not be explored. The parameter dfsnum specify an unique id for the state s. Parameter cond represents The value on the ingoing edge to s.
References spot::U.
◆ run()
The main function that will perform the product on-the-fly and call the emptiness check when necessary.
References spot::U.
◆ self()
ec_renault13lpar< State, SuccIterator, StateHash, StateEqual > & spot::intersect< State, SuccIterator, StateHash, StateEqual, ec_renault13lpar< State, SuccIterator, StateHash, StateEqual > >::self |
( |
| ) |
|
|
inlineinherited |
In order to implement "mixin paradigm", we must be abble to access the acual definition of the emptiness check that, in turn, has to access local variables.
◆ setup()
template<typename State , typename SuccIterator , typename StateHash , typename StateEqual >
This method is called at the begining of the exploration. here we do not need to setup any information.
◆ update()
template<typename State , typename SuccIterator , typename StateHash , typename StateEqual >
This method is called for every closing, back, or forward edge. Return true if a counterexample has been found.
References spot::U.
The documentation for this class was generated from the following file: