STORM_LOG_THROW(result->isQuantitative(),storm::exceptions::InvalidOperationException,"Unable to perform comparison operation on non-quantitative result.");
STORM_LOG_THROW(result->isQuantitative(),storm::exceptions::InvalidOperationException,"Unable to perform comparison operation on non-quantitative result.");
STORM_LOG_THROW(result->isQuantitative(),storm::exceptions::InvalidOperationException,"Unable to perform comparison operation on non-quantitative result.");
this->addOption(storm::settings::OptionBuilder(moduleName,eliminationOrderOptionName,true,"The order that is to be used for the elimination techniques. Available are {fw, fwrev, bw, bwrev, rand}.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the order in which states are chosen for elimination.").addValidationFunctionString(storm::settings::ArgumentValidators::stringInListValidator(orders)).setDefaultValueString("bw").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,eliminationMethodOptionName,true,"The elimination technique to use. Available are {state, hybrid}.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the elimination technique to use.").addValidationFunctionString(storm::settings::ArgumentValidators::stringInListValidator(methods)).setDefaultValueString("hybrid").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,entryStatesLastOptionName,true,"Sets whether the entry states are eliminated last.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,maximalSccSizeOptionName,true,"Sets the maximal size of the SCCs for which state elimination is applied.")
.addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("maxsize","The maximal size of an SCC on which state elimination is applied.").setDefaultValueUnsignedInteger(20).setIsOptional(true).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,encodeSmt2StrategyOptionName,true,"Set the smt2 encoding strategy.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("strategy","the used strategy").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,exportSmt2DestinationPathOptionName,true,"A path to a file where the result should be saved.")
STORM_LOG_THROW(storm::settings::generalSettings().isPropertySet(),storm::exceptions::InvalidSettingsException,"Unable to perform model checking without a property.");
STORM_LOG_THROW(storm::settings::generalSettings().isPctlPropertySet(),storm::exceptions::InvalidSettingsException,"Unable to perform model checking without a property.");
STORM_LOG_THROW(reachabilityRewardFormula,storm::exceptions::InvalidPropertyException,"Illegal formula "<<*filterFormula<<" for parametric model checking. Note that only unbounded reachability properties (probabilities/rewards) are admitted.");
STORM_LOG_THROW(phiStateFormulaApFormula,storm::exceptions::InvalidPropertyException,"Illegal formula "<<*phiStateFormula<<" for parametric model checking. Note that only atomic propositions are admitted in that position.");
STORM_LOG_THROW(psiStateFormulaApFormula,storm::exceptions::InvalidPropertyException,"Illegal formula "<<*psiStateFormula<<" for parametric model checking. Note that only atomic propositions are admitted in that position.");
// Perform bisimulation minimization if requested.