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 |