-
- }else{
-
- mc_stats->executed_transitions++;
-
- XBT_DEBUG("No more request to execute in this state, search evolution in Büchi Automaton.");
-
- MC_SET_RAW_MEM;
-
- xbt_dynar_reset(successors);
-
- MC_UNSET_RAW_MEM;
-
-
- cursor= 0;
- xbt_dynar_foreach(current_pair->automaton_state->out, cursor, transition_succ){
-
- res = MC_automaton_evaluate_label(transition_succ->label);
-
- if(res == 1){ // enabled transition in automaton
-
- MC_SET_RAW_MEM;
-
- next_pair = MC_pair_new();
- next_pair->graph_state = MC_state_new();
- next_pair->automaton_state = transition_succ->dst;
- next_pair->atomic_propositions = get_atomic_propositions_values();
-
- /* Get enabled process and insert it in the interleave set of the next graph_state */
- xbt_swag_foreach(process, simix_global->process_list){
- if(MC_process_is_enabled(process)){
- MC_state_interleave_process(next_pair->graph_state, process);
- }
- }
-
- next_pair->requests = MC_state_interleave_size(next_pair->graph_state);
-
- xbt_dynar_push(successors, &next_pair);
-
- MC_UNSET_RAW_MEM;
- }
-
- }
-
- cursor = 0;
-
- xbt_dynar_foreach(current_pair->automaton_state->out, cursor, transition_succ){
-
- res = MC_automaton_evaluate_label(transition_succ->label);
-
- if(res == 2){ // true transition in automaton
-
- MC_SET_RAW_MEM;
-
- next_pair = MC_pair_new();
- next_pair->graph_state = MC_state_new();
- next_pair->automaton_state = transition_succ->dst;
- next_pair->atomic_propositions = get_atomic_propositions_values();
-
- /* Get enabled process and insert it in the interleave set of the next graph_state */
- xbt_swag_foreach(process, simix_global->process_list){
- if(MC_process_is_enabled(process)){
- MC_state_interleave_process(next_pair->graph_state, process);
- }
- }
-
- next_pair->requests = MC_state_interleave_size(next_pair->graph_state);
-
- xbt_dynar_push(successors, &next_pair);
-
- MC_UNSET_RAW_MEM;
- }
-
- }
-
- cursor = 0;
-
- xbt_dynar_foreach(successors, cursor, pair_succ){
-
- if(search_cycle == 1){
-
- if((pair_succ->automaton_state->type == 1) || (pair_succ->automaton_state->type == 2)){
-
- if((reached_num = is_reached_acceptance_pair(pair_succ)) != -1){
-
- XBT_INFO("Next pair (depth = %d) already reached (equal to state %d)!", xbt_fifo_size(mc_stack_liveness) + 1, reached_num);
-
- XBT_INFO("*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*");
- XBT_INFO("| ACCEPTANCE CYCLE |");
- XBT_INFO("*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*");
- XBT_INFO("Counter-example that violates formula :");
- MC_show_stack_liveness(mc_stack_liveness);
- MC_dump_stack_liveness(mc_stack_liveness);
- MC_print_statistics(mc_stats);
- xbt_abort();
-
- }else{
-
- if(is_visited_pair(pair_succ) != -1){
-
- XBT_DEBUG("Next pair already visited !");
- break;
-
- }else{
-
- XBT_INFO("Next pair (depth = %d) -> Acceptance pair (%s)", xbt_fifo_size(mc_stack_liveness) + 1, pair_succ->automaton_state->id);
-
- MC_SET_RAW_MEM;
- xbt_fifo_unshift(mc_stack_liveness, pair_succ);
- MC_UNSET_RAW_MEM;