- "model-check/strategy", "Specify the the kind of heuristic to use for guided model-checking", "none",
- [](std::string_view value) {
- if (value != "none" && value != "nb_wait")
- xbt_die("configuration option 'model-check/guided-mc' can only take 'none' or 'nb_wait' as a value");
- }};
-
-#if SIMGRID_HAVE_STATEFUL_MC
-simgrid::config::Flag<int> _sg_mc_checkpoint{
- "model-check/checkpoint", "Specify the amount of steps between checkpoints during stateful model-checking "
- "(default: 0 => stateless verification). If value=1, one checkpoint is saved for each "
- "step => faster verification, but huge memory consumption; higher values are good "
- "compromises between speed and memory consumption.",
- 0, [](int) { _mc_cfg_cb_check("checkpointing value"); }};
-
-simgrid::config::Flag<std::string> _sg_mc_property_file{
- "model-check/property", "Name of the file containing the property, as formatted by the ltl2ba program.", "",
- [](const std::string&) { _mc_cfg_cb_check("property"); }};
+ "model-check/strategy",
+ "Specify the the kind of heuristic to use for guided model-checking",
+ "none",
+ {{"none", "No specific strategy: simply pick the first available transition and act as a DFS."},
+ {"max_match_comm", "Try to minimize the number of in-fly communication by appairing matching send and receive."},
+ {"min_match_comm",
+ "Try to maximize the number of in-fly communication by not appairing matching send and receive."},
+ {"uniform", "No specific strategy: choices are made randomly based on a uniform sampling."}}};
+
+simgrid::config::Flag<int> _sg_mc_random_seed{"model-check/rand-seed",
+ "give a specific random seed to initialize the uniform distribution", 0,
+ [](int) { _mc_cfg_cb_check("Random seed"); }};