|
CUBA
|
Classes | |
| class | algs |
| class | alphabet |
| class | cuba_exception |
| customized exception More... | |
| class | cuba_runtime_error |
| customized runtime error class More... | |
| class | debugger |
| class | explicit_state |
| class | explicit_state_tid |
| class | finite_automaton |
| class | fsa_transition |
| class | generator |
| class | logger |
| class | parser |
| class | prop |
| class | pushdown_automaton |
| class | sstack |
| class | store_automaton |
| class | symbolic_state |
| class | thread_state |
| class | thread_visible_state |
| class | transition |
| class | visible_state |
Typedefs | |
| using | size_n = ushort |
| the size of threads | |
| using | size_k = ushort |
| the size of context switches | |
| using | id_thread_state = uint |
| thread id | |
| using | id_thread = size_n |
| using | ctx_bound = size_k |
| using | concurrent_pushdown_automata = vector< pushdown_automaton > |
| using | stack_vec = vector< pda_stack > |
| the set of stacks in CPDS | |
| using | finite_machine = map< thread_visible_state, deque< transition< thread_visible_state, thread_visible_state > >> |
| using | concurrent_finite_machine = vector< finite_machine > |
| Concurrent finite machine: a vector of finite state machine. | |
| using | fsa_state = pda_state |
| using | fsa_state_set = set< fsa_state > |
| a set of fsa_state | |
| using | fsa_alpha = pda_alpha |
| using | fsa_alphabet = set< fsa_alpha > |
| a set of fsa_alpha | |
| using | fsa_delta = unordered_map< fsa_state, set< fsa_transition > > |
| the data structure of FSA transitions | |
| using | pda_state = uint |
| define the control state of PDSs | |
| using | pda_alpha = uint |
| define the stack symbol of PDSs | |
| using | pda_stack = sstack< pda_alpha > |
| using | id_action = uint |
| using | adj_list = map< thread_visible_state, deque< id_action > > |
| using | pda_action = transition< thread_visible_state, thread_state > |
Enumerations | |
| enum | sequence { CONVERGENT, DIVERGENT, REACHABLE, UNKNOWN } |
| enum | type_stack_operation { PUSH, POP, OVERWRITE } |
| enum | type_synchronization { FORK, NORM, BRCT } |
| enum | alignment { LEFTJUST, RIGHTJUST, CENTERED } |
Functions | |
| ostream & | operator<< (ostream &os, const visible_state &s) |
| bool | operator< (const visible_state &s1, const visible_state &s2) |
| bool | operator> (const visible_state &s1, const visible_state &s2) |
| bool | operator== (const visible_state &s1, const visible_state &s2) |
| bool | operator!= (const visible_state &s1, const visible_state &s2) |
| ostream & | operator<< (ostream &os, const explicit_state &c) |
| bool | operator< (const explicit_state &g1, const explicit_state &g2) |
| bool | operator> (const explicit_state &g1, const explicit_state &g2) |
| bool | operator== (const explicit_state &g1, const explicit_state &g2) |
| bool | operator!= (const explicit_state &g1, const explicit_state &g2) |
| ostream & | operator<< (ostream &os, const explicit_state_tid &c) |
| bool | operator< (const explicit_state_tid &g1, const explicit_state_tid &g2) |
| bool | operator> (const explicit_state_tid &g1, const explicit_state_tid &g2) |
| bool | operator== (const explicit_state_tid &g1, const explicit_state_tid &g2) |
| bool | operator!= (const explicit_state_tid &g1, const explicit_state_tid &g2) |
| ostream & | operator<< (ostream &os, const symbolic_state &c) |
| ostream & | operator<< (ostream &os, const fsa_transition &r) |
| bool | operator< (const fsa_transition &r1, const fsa_transition &r2) |
| bool | operator> (const fsa_transition &r1, const fsa_transition &r2) |
| bool | operator== (const fsa_transition &r1, const fsa_transition &r2) |
| bool | operator!= (const fsa_transition &r1, const fsa_transition &r2) |
| ostream & | operator<< (ostream &os, const finite_automaton &fsa) |
| ostream & | operator<< (ostream &os, const type_stack_operation &t) |
| ostream & | operator<< (ostream &os, const type_synchronization &t) |
| template<typename T1 , typename T2 > | |
| ostream & | operator<< (ostream &os, const transition< T1, T2 > &r) |
| ostream & | operator<< (ostream &os, const thread_visible_state &t) |
| bool | operator< (const thread_visible_state &t1, const thread_visible_state &t2) |
| bool | operator> (const thread_visible_state &t1, const thread_visible_state &t2) |
| bool | operator== (const thread_visible_state &t1, const thread_visible_state &t2) |
| bool | operator!= (const thread_visible_state &t1, const thread_visible_state &t2) |
| template<typename T > | |
| ostream & | operator<< (ostream &os, const sstack< T > &a) |
| template<typename T > | |
| bool | operator< (const sstack< T > &a1, const sstack< T > &a2) |
| template<typename T > | |
| bool | operator> (const sstack< T > &a1, const sstack< T > &a2) |
| template<typename T > | |
| bool | operator== (const sstack< T > &a1, const sstack< T > &a2) |
| template<typename T > | |
| bool | operator!= (const sstack< T > &a1, const sstack< T > &a2) |
| ostream & | operator<< (ostream &os, const thread_state &c) |
| bool | operator< (const thread_state &c1, const thread_state &c2) |
| bool | operator> (const thread_state &c1, const thread_state &c2) |
| bool | operator== (const thread_state &c1, const thread_state &c2) |
| bool | operator!= (const thread_state &c1, const thread_state &c2) |
| ostream & | operator<< (ostream &os, const pushdown_automaton &PDA) |
state.cc
Finite-state automaton
generator.cc
PDS parser
PDS parser
Pushdown automaton
prop.cc
prop.hh This is a property class
utilities.cc
| using ruba::concurrent_pushdown_automata = typedef vector<pushdown_automaton> |
concurrent pushdown automaton
| using ruba::finite_machine = typedef map<thread_visible_state, deque<transition<thread_visible_state, thread_visible_state> >> |
A finite machine: used for overapproximate reachable visible states. We definite a finite state machine in the form of adjacency list.
| using ruba::id_action = typedef uint |
PART 3. The definition of a sequential pushdown automaton
define the transition ID
| using ruba::pda_stack = typedef sstack<pda_alpha> |
Definition of the stack for a PDA
|
strong |
The result data structure of observation sequences
|
strong |
define the type of stack operations: PUSH : push an element to the stack POP : pop an element from the stack OVERWRITE: overwrite the top element of the stack
|
strong |
define type of thread state transitions FORK: spawn a new thread NORM: the normal thread state transitions BRCT: the broadcast transitions
|
inline |
overloading operator !=
| r1 | |
| r2 |
|
inline |
overloading operator !=, return true if s1 != s2 and false otherwise
| s1 | a visible state |
| s2 | a visible state |
|
inline |
overloading the operator !=
| g1 | |
| g2 |
|
inline |
overloading operator !=
| t1 | |
| t2 |
|
inline |
overloading the operator !=, return true if g1 != g2 and false otherwise
| g1 | |
| g2 |
|
inline |
overloading operator !=
| a1 | |
| a2 |
|
inline |
overloading operator !=
| c1 | |
| c2 |
|
inline |
overloading operator <
| r1 | |
| r2 |
|
inline |
overloading operator <, return true if s1 < s2 and false otherwise
| s1 | a visible state |
| s2 | a visible state |
|
inline |
overloading the operator <
| g1 | |
| g2 |
|
inline |
overloading operator <
| t1 | |
| t2 |
|
inline |
overloading the operator <, return true if g1 < g2 and false otherwise
| g1 | |
| g2 |
|
inline |
overloading operator <
| a1 | |
| a2 |
|
inline |
overloading operator <
| c1 | |
| c2 |
|
inline |
overloading operator <<
| os | |
| t |
|
inline |
overloading operator <<
| os | |
| r |
|
inline |
overloading operator << to print a visible state
| os | an output stream |
| s | a visible state |
|
inline |
overloading operator <<
| os | |
| t |
|
inline |
overloading the operator <<
| os | |
| r |
|
inline |
overloading operator <<: print a configuration of the CPDS
| os | an output |
| c |
|
inline |
overloading operator <<
| os | |
| fsa |
|
inline |
overloading operator <<
| os | |
| s |
|
inline |
overloading operator <<: print a configuration of the CPDS
| os | an output stream |
| c | an explicit_state_id |
|
inline |
overloading operator <<: ostream
| os | |
| a |
|
inline |
overloading operator << to print a symbolic state
| os | an output stream |
| c | a symbolic state |
|
inline |
overloading operator <<: print thread configuration
| out | |
| c |
|
inline |
overloading operator <<: print a PDA
| os | |
| PDA |
|
inline |
overloading operator ==
| r1 | |
| r2 |
|
inline |
overloading operator ==, return true if s1 == s2 and false otherwise
| s1 | a visible state |
| s2 | a visible state |
|
inline |
overloading the operator ==
| g1 | |
| g2 |
|
inline |
overloading operator ==
| t1 | |
| t2 |
|
inline |
overloading the operator ==, return true if g1 == g2 and false otherwise
| g1 | |
| g2 |
|
inline |
overloading operator ==
| a1 | |
| a2 |
|
inline |
overloading operator ==
| c1 | |
| c2 |
|
inline |
overloading operator >
| r1 | |
| r2 |
|
inline |
overloading operator >, return true if s1 > s2 and false otherwise
| s1 | a visible state |
| s2 | a visible state |
|
inline |
overloading the operator >
| g1 | |
| g2 |
|
inline |
overloading operator >
| t1 | |
| t2 |
|
inline |
overloading the operator >, return true if g1 > g2 and false otherwise
| g1 | |
| g2 |
|
inline |
overloading operator >
| a1 | |
| a2 |
|
inline |
overloading operator >
| c1 | |
| c2 |