+
+#if HAVE_MC
+
+/* Internal variable used to check if we're running under the MC
+ *
+ * Please don't use directly: you should use MC_is_active. */
+extern XBT_PUBLIC(int) _sg_do_model_check;
+extern XBT_PUBLIC(int) _sg_mc_visited;
+
+#define MC_is_active() _sg_do_model_check
+#define MC_visited_reduction() _sg_mc_visited
+
+/** Assertion for the model-checker
+ *
+ * This function is used to define safety properties to verify.
+ */
+XBT_PUBLIC(void) MC_assert(int);
+
+XBT_PUBLIC(void) MC_automaton_new_propositional_symbol(const char* id, int(*fct)(void));
+XBT_PUBLIC(void) MC_automaton_new_propositional_symbol_pointer(const char *id, int* value);
+
+XBT_PUBLIC(void) MC_cut(void);
+XBT_PUBLIC(void) MC_ignore(void *addr, size_t size);
+
+#else
+
+#define MC_is_active() 0
+#define MC_visited_reduction() 0
+
+#define MC_assert(a) xbt_assert(a)
+#define MC_automaton_new_propositional_symbol(a, b) ((void)0)
+#define MC_automaton_new_propositional_symbol_pointer(a, b) ((void)0)
+#define MC_cut() ((void)0)
+#define MC_ignore(a, b) ((void)0)
+
+#endif
+
+SG_END_DECL()