+void set_pair_visited_hash(xbt_state_t st, int sc){
+
+
+ MC_SET_RAW_MEM;
+
+ mc_snapshot_t sn = xbt_new0(s_mc_snapshot_t, 1);
+ MC_take_snapshot_liveness(sn);
+
+ mc_pair_visited_hash_t pair = NULL;
+ pair = xbt_new0(s_mc_pair_visited_hash_t, 1);
+ pair->automaton_state = st;
+ pair->prop_ato = xbt_dynar_new(sizeof(int), NULL);
+ pair->search_cycle = sc;
+ pair->hash_regions = xbt_dict_new();
+
+ int i = 0;
+
+ for(i=0 ; i< sn->num_reg ; i++){
+ switch(sn->regions[i]->type){
+ case 0:
+ xbt_dict_set_ext(pair->hash_regions, sn->regions[i]->data, sn->regions[i]->size, "heap", NULL);
+ break;
+ case 1:
+ xbt_dict_set_ext(pair->hash_regions, sn->regions[i]->data, sn->regions[i]->size, "libsimgrid", NULL);
+ break;
+ case 2:
+ xbt_dict_set_ext(pair->hash_regions, sn->regions[i]->data, sn->regions[i]->size, "prog", NULL);
+ break;
+ }
+ }
+
+ /* Get values of propositional symbols */
+ unsigned int cursor = 0;
+ xbt_propositional_symbol_t ps = NULL;
+ int res;
+ int (*f)();
+
+ xbt_dynar_foreach(automaton->propositional_symbols, cursor, ps){
+ f = ps->function;
+ res = (*f)();
+ xbt_dynar_push_as(pair->prop_ato, int, res);
+ }
+
+ xbt_fifo_unshift(visited_pairs_hash, pair);
+
+ MC_free_snapshot(sn);
+
+ MC_UNSET_RAW_MEM;
+
+
+}
+