-
-
-
- if(xbt_dynar_length(successors) == 0){
-
- MC_SET_RAW_MEM;
- next_pair = new_pair(next_snapshot, next_graph_state, current_pair->automaton_state);
- xbt_dynar_push(successors, &next_pair);
- MC_UNSET_RAW_MEM;
-
- }
-
-
- //XBT_DEBUG("Successors length %lu", xbt_dynar_length(successors));
-
- cursor = 0;
-
- xbt_dynar_foreach(successors, cursor, pair_succ){
-
- XBT_DEBUG("Search reached pair %p : graph=%p, automaton=%p", pair_succ, pair_succ->graph_state, pair_succ->automaton_state);
- char hash[41];
- XBT_DEBUG("Const char pair %s", (const char *)&pair_succ);
- xbt_sha((const char *)&pair_succ, hash);
- XBT_DEBUG("Hash pair_succ %s", hash);
-
- if((search_cycle == 1) && (reached(pair_succ) == 1)){
- XBT_INFO("*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*");
- XBT_INFO("| ACCEPTANCE CYCLE |");
- XBT_INFO("*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*");
- XBT_INFO("Counter-example that violates formula :");
- MC_show_stack_liveness_stateful(mc_stack_liveness_stateful);
- MC_dump_stack_liveness_stateful(mc_stack_liveness_stateful);
- MC_print_statistics_pairs(mc_stats_pair);
- exit(0);
- }
-
- XBT_DEBUG("Search visited pair %p : graph %p, automaton %p", pair_succ, pair_succ->graph_state, pair_succ->automaton_state);
-
- if(visited(pair_succ, search_cycle) == 0){
-
- //mc_stats_pair->executed_transitions++;
-
- MC_SET_RAW_MEM;
- xbt_fifo_unshift(mc_stack_liveness_stateful, pair_succ);
- set_pair_visited(pair_succ, search_cycle);
- MC_UNSET_RAW_MEM;
-
- MC_vddfs_stateful(a, search_cycle, 0);
-
- //XBT_DEBUG("Pair (graph=%p, automaton=%p) expanded", pair_succ->graph_state, pair_succ->automaton_state);
-
- if((search_cycle == 0) && ((pair_succ->automaton_state->type == 1) || (pair_succ->automaton_state->type == 2))){
-
- set_pair_reached(pair_succ);
- XBT_DEBUG("Acceptance pair : graph=%p, automaton=%p(%s)", pair_succ->graph_state, pair_succ->automaton_state, pair_succ->automaton_state->id);
-
- MC_SET_RAW_MEM;
- xbt_fifo_unshift(mc_stack_liveness_stateful, pair_succ);
- MC_UNSET_RAW_MEM;
-
- MC_vddfs_stateful(a, 1, 1);
-
- //MC_SET_RAW_MEM;
- xbt_dynar_pop(reached_pairs, NULL);
- //MC_UNSET_RAW_MEM;
-
- }
-
- }else{
-
- XBT_DEBUG("Pair already visited !");
- }
-
- }
-
-
- if(MC_state_interleave_size(current_pair->graph_state) > 0){
- MC_restore_snapshot(current_snapshot);
- MC_UNSET_RAW_MEM;
-
- }