16const std::string CounterexampleGeneratorSettings::counterexampleOptionName =
"counterexample";
17const std::string CounterexampleGeneratorSettings::counterexampleOptionShortName =
"cex";
18const std::string CounterexampleGeneratorSettings::counterexampleTypeOptionName =
"cextype";
19const std::string CounterexampleGeneratorSettings::shortestPathMaxKOptionName =
"shortestpath-maxk";
20const std::string CounterexampleGeneratorSettings::minimalCommandMethodOptionName =
"mincmdmethod";
21const std::string CounterexampleGeneratorSettings::encodeReachabilityOptionName =
"encreach";
22const std::string CounterexampleGeneratorSettings::schedulerCutsOptionName =
"schedcuts";
23const std::string CounterexampleGeneratorSettings::noDynamicConstraintsOptionName =
"nodyn";
27 "Generates a counterexample for the given PRCTL formulas if not satisfied by the model.")
28 .setShortName(counterexampleOptionShortName)
30 std::vector<std::string>
cextype = {
"mincmd",
"shortestpath"};
32 "Generates a counterexample of the given type if the given PRCTL formula is not satisfied by the model.")
42 "maxk",
"Upper bound on number of generated paths. Default value is 10.")
46 std::vector<std::string> method = {
"maxsat",
"milp"};
48 "Sets which method is used to derive the counterexample in terms of a minimal command/edge set.")
56 "Sets whether to encode reachability for MAXSAT-based counterexample generation.")
60 "Sets whether to add the scheduler cuts for MILP-based counterexample generation.")
64 "Disables the generation of dynamic constraints in the MAXSAT-based counterexample generation.")
111 "Counterexample type was set but counterexample flag '-cex' is missing.");
116 storm::exceptions::InvalidSettingsException,
"For the generation of a minimal command set, the model has to be specified in the PRISM/JANI format.");
120 "Encoding reachability is only available for the MaxSat-based minimal command set generation, so selecting it has no effect.");
122 "Using scheduler cuts is only available for the MaxSat-based minimal command set generation, so selecting it has no effect.");
virtual std::string getValueAsString() const =0
Retrieves the value of this argument as a string.
virtual uint_fast64_t getValueAsUnsignedInteger() const =0
Retrieves the value of this argument as an unsigned integer.
static ArgumentBuilder createUnsignedIntegerArgument(std::string const &name, std::string const &description)
Creates an unsigned integer argument with the given parameters.
static ArgumentBuilder createStringArgument(std::string const &name, std::string const &description)
Creates a string argument with the given parameters.
static std::shared_ptr< ArgumentValidator< std::string > > createMultipleChoiceValidator(std::vector< std::string > const &choices)
This class provides the interface to create an option...
ArgumentBase const & getArgumentByName(std::string const &argumentName) const
Returns a reference to the argument with the specified long name.
bool getHasOptionBeenSet() const
Retrieves whether the option has been set.
bool isCounterexampleSet() const
Retrieves whether the counterexample option was set.
CounterexampleGeneratorSettings()
Creates a new set of counterexample settings.
bool isShortestPathGenerationSet() const
Retrieves whether the option to generate a shortest path counterexample was set.
bool isUseMaxSatBasedMinimalCommandSetGenerationSet() const
Retrieves whether the MAXSAT-based technique is to be used to generate a minimal command set countere...
bool check() const override
Checks whether the settings are consistent.
static const std::string moduleName
size_t getShortestPathMaxK() const
Retrieves the maximal number K of shortest paths which should be generated.
bool isUseDynamicConstraintsSet() const
Retrieves whether to use the dynamic constraints in the MAXSAT-based technique.
bool isUseSchedulerCutsSet() const
Retrieves whether scheduler cuts are to be used if the MAXSAT-based technique is used to generate a m...
bool isEncodeReachabilitySet() const
Retrieves whether reachability of a target state is to be encoded if the MAXSAT-based technique is us...
bool isCounterexampleTypeSet() const
Retrieves whether the type of counterexample was set.
bool isMinimalCommandSetGenerationSet() const
Retrieves whether the option to generate a minimal command set counterexample was set.
bool isUseMilpBasedMinimalCommandSetGenerationSet() const
Retrieves whether the MILP-based technique is to be used to generate a minimal command set counterexa...
This is the base class of the settings for a particular module.
void addOption(std::shared_ptr< Option > const &option)
Adds and registers the given option.
Option & getOption(std::string const &longName)
Retrieves the option with the given long name.
#define STORM_LOG_WARN_COND(cond, message)
#define STORM_LOG_THROW(cond, exception, message)
SettingsType const & getModule()
Get module.