#include <tgbaalgos/gtec/gtec.hh>
Inheritance diagram for spot::couvreur99_check_shy:
Public Member Functions | |
couvreur99_check_shy (const tgba *a, bool poprem=true, bool group=true, const numbered_state_heap_factory *nshf=numbered_state_heap_hash_map_factory::instance()) | |
virtual | ~couvreur99_check_shy () |
virtual emptiness_check_result * | check () |
Check whether the automaton's language is empty. | |
virtual std::ostream & | print_stats (std::ostream &os) const |
Print statistics, if any. | |
const couvreur99_check_status * | result () const |
Return the status of the emptiness-check. | |
const tgba * | automaton () const |
The automaton that this emptiness-check inspects. | |
void | set_states (unsigned n) |
void | inc_states () |
void | inc_transitions () |
void | inc_depth (unsigned n=1) |
void | dec_depth (unsigned n=1) |
int | states () const |
int | transitions () const |
int | max_depth () const |
int | depth () const |
Protected Types | |
typedef std::list< successor > | succ_queue |
typedef std::list< todo_item > | todo_list |
Protected Member Functions | |
void | clear_todo () |
virtual int * | find_state (const state *s) |
find the SCC number of a unprocessed state. | |
void | remove_component (const state *start_delete) |
Remove a strongly component from the hash. | |
Protected Attributes | |
std::stack< bdd > | arc |
int | num |
todo_list | todo |
bool | group_ |
couvreur99_check_status * | ecs_ |
bool | poprem_ |
Whether to store the state to be removed. | |
const tgba * | a_ |
The automaton. | |
Classes | |
struct | successor |
struct | todo_item |
If group is true (the default), the successors of all the states that belong to the same SCC will be considered when choosing a successor. Otherwise, only the successor of the topmost state on the DFS stack are considered.
See the documentation for spot::couvreur99_check
|
|
|
|
|
|
|
|
|
The automaton that this emptiness-check inspects.
|
|
Check whether the automaton's language is empty.
Reimplemented from spot::couvreur99_check. |
|
|
|
|
|
|
|
find the SCC number of a unprocessed state. Sometimes we want to modify some of the above structures when looking up a new state. This happens for instance when find() must perform inclusion checking and add new states to process to TODO during this step. (Because TODO must be known, sub-classing spot::numbered_state_heap is not enough.) Then overriding this method is the way to go. |
|
|
|
|
|
|
|
|
|
Print statistics, if any.
Reimplemented from spot::emptiness_check. |
|
Remove a strongly component from the hash. This function remove all accessible state from a given state. In other words, it removes the strongly connected component that contains this state. |
|
Return the status of the emptiness-check. When check() succeed, the status should be passed along to spot::counter_example. This status should not be deleted, it is a pointer to a member of this class that will be deleted when the couvreur99 object is deleted. |
|
|
|
|
|
|
|
The automaton.
|
|
|
|
|
|
|
|
|
|
Whether to store the state to be removed.
|
|
|