LOG_THROW(isCompatible,storm::exceptions::IllegalFunctionCallException,"Unable to add option '"<<option->getLongName()<<"', because an option with the same name is incompatible with it.");
LOG_THROW(isCompatible,storm::exceptions::IllegalFunctionCallException,"Unable to add option '"<<option->getLongName()<<"', because an option with the same name is incompatible with it.");
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,minimalCommandSetOptionName,true,"Computes a counterexample for the given model in terms of a minimal command set. Note that this requires the model to be given in a symbolic format.")
this->addOption(storm::settings::OptionBuilder(moduleName,minimalCommandSetOptionName,true,"Computes a counterexample for the given model in terms of a minimal command set. Note that this requires the model to be given in a symbolic format.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The file containing the properties for which counterexamples are to be generated.").addValidationFunctionString(storm::settings::ArgumentValidators::existingReadableFileValidator()).build())
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("method","Sets which technique is used to derive the counterexample. Available are {milp, maxsat}").setDefaultValueString("maxsat").addValidationFunctionString(storm::settings::ArgumentValidators::stringInListValidator(techniques)).build()).build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,statisticsOptionName,true,"Sets whether to display statistics for counterexample generation.").build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,encodeReachabilityOptionName,true,"Sets whether to encode reachability for MAXSAT-based minimal command counterexample generation.").build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,schedulerCutsOptionName,true,"Sets whether to add the scheduler cuts for MILP-based minimal command counterexample generation.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,statisticsOptionName,true,"Sets whether to display statistics for counterexample generation.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,encodeReachabilityOptionName,true,"Sets whether to encode reachability for MAXSAT-based minimal command counterexample generation.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,schedulerCutsOptionName,true,"Sets whether to add the scheduler cuts for MILP-based minimal command counterexample generation.").build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,precisionOptionName,true,"Sets the precision used by Cudd.").addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The precision up to which to constants are considered to be different.").setDefaultValueDouble(1e-15).addValidationFunctionDouble(storm::settings::ArgumentValidators::doubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,precisionOptionName,true,"Sets the precision used by Cudd.").addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The precision up to which to constants are considered to be different.").setDefaultValueDouble(1e-15).addValidationFunctionDouble(storm::settings::ArgumentValidators::doubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,maximalMemoryOptionName,true,"Sets the upper bound of memory available to Cudd in MB.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("mb","The memory available to Cudd (0 means unlimited).").setDefaultValueUnsignedInteger(2048).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,maximalMemoryOptionName,true,"Sets the upper bound of memory available to Cudd in MB.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("value","The memory available to Cudd (0 means unlimited).").setDefaultValueUnsignedInteger(2048).build()).build());
std::vector<std::string>reorderingTechniques;
reorderingTechniques.push_back("none");
@ -35,7 +35,57 @@ namespace storm {
reorderingTechniques.push_back("annealing");
reorderingTechniques.push_back("genetic");
reorderingTechniques.push_back("exact");
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,reorderOptionName,true,"Sets the reordering technique used by Cudd.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("method","Sets which technique is used by Cudd's reordering routines. Must be in {none, random, randompivot, sift, siftconv, ssift, ssiftconv, gsift, gsiftconv, win2, win2conv, win3, win3conv, win4, win4conv, annealing, genetic, exact}.").setDefaultValueString("gsift").addValidationFunctionString(storm::settings::ArgumentValidators::stringInListValidator(reorderingTechniques)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,reorderOptionName,true,"Sets the reordering technique used by Cudd.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("method","Sets which technique is used by Cudd's reordering routines. Must be in {none, random, randompivot, sift, siftconv, ssift, ssiftconv, gsift, gsiftconv, win2, win2conv, win3, win3conv, win4, win4conv, annealing, genetic, exact}.").setDefaultValueString("gsift").addValidationFunctionString(storm::settings::ArgumentValidators::stringInListValidator(reorderingTechniques)).build()).build());
LOG_THROW(false,storm::exceptions::IllegalArgumentValueException,"Illegal value '"<<reorderingTechniqueAsString<<"' set as reordering technique of Cudd.");
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,traceOptionName,false,"Print even more debug output.").build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,logfileOptionName,false,"If specified, the log output will also be written to this file.").setShortName(logfileOptionShortName)
this->addOption(storm::settings::OptionBuilder(moduleName,traceOptionName,false,"Print even more debug output.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,logfileOptionName,false,"If specified, the log output will also be written to this file.").setShortName(logfileOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The name of the file to write the log.").build()).build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,helpOptionName,false,"Shows all available options, arguments and descriptions.").setShortName(helpOptionShortName)
this->addOption(storm::settings::OptionBuilder(moduleName,helpOptionName,false,"Shows all available options, arguments and descriptions.").setShortName(helpOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("module","The module for which to show the help or 'all' for all modules.").setDefaultValueString("all").addValidationFunctionString(storm::settings::ArgumentValidators::stringInListValidator(moduleNames)).build()).build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,verboseOptionName,false,"Enables more verbose output.").setShortName(verboseOptionShortName).build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,precisionOptionName,true,"The internally used precision.").setShortName(precisionOptionShortName)
this->addOption(storm::settings::OptionBuilder(moduleName,verboseOptionName,false,"Enables more verbose output.").setShortName(verboseOptionShortName).build());
this->addOption(storm::settings::OptionBuilder(moduleName,precisionOptionName,true,"The internally used precision.").setShortName(precisionOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createDoubleArgument("value","The precision to use.").setDefaultValueDouble(1e-06).addValidationFunctionDouble(storm::settings::ArgumentValidators::doubleRangeValidatorExcluding(0.0,1.0)).build()).build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,exportDotOptionName,"","If given, the loaded model will be written to the specified file in the dot format.")
this->addOption(storm::settings::OptionBuilder(moduleName,exportDotOptionName,"","If given, the loaded model will be written to the specified file in the dot format.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The name of the file to which the model is to be written.").build()).build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,configOptionName,false,"If given, this file will be read and parsed for additional configuration settings.").setShortName(configOptionShortName)
this->addOption(storm::settings::OptionBuilder(moduleName,configOptionName,false,"If given, this file will be read and parsed for additional configuration settings.").setShortName(configOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The name of the file from which to read the configuration.").addValidationFunctionString(storm::settings::ArgumentValidators::existingReadableFileValidator()).build()).build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,explicitOptionName,false,"Parses the model given in an explicit (sparse) representation.").setShortName(explicitOptionShortName)
this->addOption(storm::settings::OptionBuilder(moduleName,explicitOptionName,false,"Parses the model given in an explicit (sparse) representation.").setShortName(explicitOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("transition filename","The name of the file from which to read the transitions.").addValidationFunctionString(storm::settings::ArgumentValidators::existingReadableFileValidator()).build())
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("labeling filename","The name of the file from which to read the state labeling.").addValidationFunctionString(storm::settings::ArgumentValidators::existingReadableFileValidator()).build()).build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,symbolicOptionName,false,"Parses the model given in a symbolic representation.").setShortName(symbolicOptionShortName)
this->addOption(storm::settings::OptionBuilder(moduleName,symbolicOptionName,false,"Parses the model given in a symbolic representation.").setShortName(symbolicOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The name of the file from which to read the symbolic model.").addValidationFunctionString(storm::settings::ArgumentValidators::existingReadableFileValidator()).build()).build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,pctlOptionName,false,"Specifies the PCTL formulas that are to be checked on the model.")
this->addOption(storm::settings::OptionBuilder(moduleName,pctlOptionName,false,"Specifies the PCTL formulas that are to be checked on the model.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The file from which to read the PCTL formulas.").addValidationFunctionString(storm::settings::ArgumentValidators::existingReadableFileValidator()).build()).build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,cslOptionName,false,"Specifies the CSL formulas that are to be checked on the model.")
this->addOption(storm::settings::OptionBuilder(moduleName,cslOptionName,false,"Specifies the CSL formulas that are to be checked on the model.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The file from which to read the CSL formulas.").addValidationFunctionString(storm::settings::ArgumentValidators::existingReadableFileValidator()).build()).build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,ltlOptionName,false,"Specifies the LTL formulas that are to be checked on the model.")
this->addOption(storm::settings::OptionBuilder(moduleName,ltlOptionName,false,"Specifies the LTL formulas that are to be checked on the model.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The file from which to read the LTL formulas.").addValidationFunctionString(storm::settings::ArgumentValidators::existingReadableFileValidator()).build()).build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,counterexampleOptionName,false,"Generates a counterexample for the given PRCTL formulas if not satisfied by the model")
this->addOption(storm::settings::OptionBuilder(moduleName,counterexampleOptionName,false,"Generates a counterexample for the given PRCTL formulas if not satisfied by the model")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The name of the file to which the counterexample is to be written.").build()).build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,transitionRewardsOptionName,"","If given, the transition rewards are read from this file and added to the explicit model. Note that this requires the model to be given as an explicit model (i.e., via --"+explicitOptionName+").")
this->addOption(storm::settings::OptionBuilder(moduleName,transitionRewardsOptionName,"","If given, the transition rewards are read from this file and added to the explicit model. Note that this requires the model to be given as an explicit model (i.e., via --"+explicitOptionName+").")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The file from which to read the transition rewards.").addValidationFunctionString(storm::settings::ArgumentValidators::existingReadableFileValidator()).build()).build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,stateRewardsOptionName,false,"If given, the state rewards are read from this file and added to the explicit model. Note that this requires the model to be given as an explicit model (i.e., via --"+explicitOptionName+").")
this->addOption(storm::settings::OptionBuilder(moduleName,stateRewardsOptionName,false,"If given, the state rewards are read from this file and added to the explicit model. Note that this requires the model to be given as an explicit model (i.e., via --"+explicitOptionName+").")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The file from which to read the state rewards.").addValidationFunctionString(storm::settings::ArgumentValidators::existingReadableFileValidator()).build()).build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,fixDeadlockOptionName,false,"If the model contains deadlock states, they need to be fixed by setting this option.").setShortName(fixDeadlockOptionShortName).build());
this->addOption(storm::settings::OptionBuilder(moduleName,fixDeadlockOptionName,false,"If the model contains deadlock states, they need to be fixed by setting this option.").setShortName(fixDeadlockOptionShortName).build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,eqSolverOptionName,false,"Sets which solver is preferred for solving systems of linear equations.")
this->addOption(storm::settings::OptionBuilder(moduleName,eqSolverOptionName,false,"Sets which solver is preferred for solving systems of linear equations.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the solver to prefer. Available are: gmm++ and native.").addValidationFunctionString(storm::settings::ArgumentValidators::stringInListValidator(linearEquationSolver)).setDefaultValueString("gmm++").build()).build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,timeoutOptionName,false,"If given, computation will abort after the timeout has been reached.").setShortName(timeoutOptionShortName)
this->addOption(storm::settings::OptionBuilder(moduleName,timeoutOptionName,false,"If given, computation will abort after the timeout has been reached.").setShortName(timeoutOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("time","The number of seconds after which to timeout.").setDefaultValueUnsignedInteger(0).build()).build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,lpSolverOptionName,false,"Sets which LP solver is preferred.")
this->addOption(storm::settings::OptionBuilder(moduleName,lpSolverOptionName,false,"Sets which LP solver is preferred.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of an LP solver. Available are: gurobi and glpk.").addValidationFunctionString(storm::settings::ArgumentValidators::stringInListValidator(lpSolvers)).setDefaultValueString("glpk").build()).build());
this->addAndRegisterOption(storm::settings::OptionBuilder(moduleName,constantsOptionName,false,"Specifies the constant replacements to use in symbolic models. Note that Note that this requires the model to be given as an symbolic model (i.e., via --"+symbolicOptionName+").").setShortName(constantsOptionShortName)
this->addOption(storm::settings::OptionBuilder(moduleName,constantsOptionName,false,"Specifies the constant replacements to use in symbolic models. Note that Note that this requires the model to be given as an symbolic model (i.e., via --"+symbolicOptionName+").").setShortName(constantsOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("values","A comma separated list of constants and their value, e.g. a=1,b=2,c=3.").setDefaultValueString("").build()).build());