12 #include "generator.hh" 24 base_cuba(
const string& initl,
const string&
final,
const string& filename);
26 virtual void context_unbounded_analysis(
const size_k k_bound = 0) = 0;
52 const string& filename);
55 virtual void context_unbounded_analysis(
const size_k k_bound = 0);
67 set<fsa_state> BFS_visit(
const fsa_state& root,
68 const unordered_map<fsa_state, deque<fsa_state>>& adj,
71 const vector<store_automaton>& automata,
const size_n& idx);
74 const bool& is_rename =
false);
91 bool converge(
const vector<deque<symbolic_state>>& R,
const size_k k,
92 vector<set<visible_state>>& top_R);
94 uint top_mapping(
const deque<symbolic_state>& R,
95 vector<set<visible_state>>& topped_R);
98 vector<vector<pda_alpha>> cross_product(
const vector<set<pda_alpha>>& tops);
110 const string& filename);
114 virtual void context_unbounded_analysis(
const size_k k_bound = 0);
117 bool k_bounded_reachability(
const size_k k_bound,
122 bool update_R(vector<vector<antichain>>& R,
const size_k k,
126 bool converge(
const vector<antichain>& R,
const size_k k,
127 vector<set<visible_state>>& top_R);
128 bool is_convergent();
130 vector<vector<antichain>>& R);
136 bool finite_context_reachability(
const size_n tid);
139 map<thread_visible_state, bool>& visit,
140 map<thread_visible_state, bool>& trace);
uint pda_alpha
define the stack symbol of PDSs
Definition: pda.hh:19
vector< vector< bool > > reachable_T
Definition: cuba.hh:40
symbolic_cuba: A symbolic version for context-unbounded analysis.
Definition: cuba.hh:49
ushort size_n
the size of threads
Definition: cpda.hh:25
concurrent_pushdown_automata CPDA
concurrent pushdown system
Definition: cuba.hh:35
explicit_state initl_c
explicit initial state
Definition: cuba.hh:31
vector< set< visible_state > > generators
generators: used for determining the convergence
Definition: cuba.hh:37
ushort size_k
the size of context switches
Definition: cpda.hh:27
explicit_cuba: An explicit version for context-unbounded analysis.
Definition: cuba.hh:107
deque< explicit_state_tid > antichain
To store unordering explicit states.
Definition: cuba.hh:102
uint pda_state
define the control state of PDSs
Definition: pda.hh:17
vector< pushdown_automaton > concurrent_pushdown_automata
Definition: cpda.hh:37
set< fsa_state > fsa_state_set
a set of fsa_state
Definition: fsa.hh:16
visible_state final_c
explicit target state
Definition: cuba.hh:33
vector< pda_stack > stack_vec
the set of stacks in CPDS
Definition: cpda.hh:40