-void set_pair_visited(int num_pair, int search_cycle);
-int visited(int num_pair, int search_cycle);
-int pair_reached(xbt_dynar_t pairs_reached, int num_pair);
+void set_pair_visited(mc_state_t gs, xbt_state_t as, int search_cycle);
+int visited(mc_state_t gs, xbt_state_t as, int search_cycle);
+int reached(mc_state_t gs, xbt_state_t as);
+void set_pair_reached(mc_state_t gs, xbt_state_t as);
+void MC_show_snapshot_stack(xbt_fifo_t stack);
+void MC_dump_snapshot_stack(xbt_fifo_t stack);
+void MC_pair_delete(mc_pairs_t pair);
+void MC_exit_with_automaton(void);
+mc_state_t MC_state_pair_new(void);
+
+/********************************** Stateful DPOR **************************************/
+
+void MC_dpor_with_restore_snapshot(xbt_automaton_t a, int search_cycle, int restore);
+void MC_dpor_with_restore_snapshot_init(xbt_automaton_t a);