STORM_LOG_THROW((storm::settings::getModule<storm::settings::modules::RegionSettings>().getSmtMode()==storm::settings::modules::RegionSettings::SmtMode::FUNCTION),storm::exceptions::NotImplementedException,"Selected SMT mode has not been implemented.");
STORM_LOG_THROW((this->getSettings().getSmtMode()==storm::settings::modules::RegionSettings::SmtMode::FUNCTION),storm::exceptions::NotImplementedException,"Selected SMT mode has not been implemented.");
STORM_LOG_THROW(model->isOfType(storm::models::ModelType::Mdp),storm::exceptions::InvalidArgumentException,"Tried to create an mdp region model checker for a model that is not an mdp");
STORM_LOG_THROW(model->getInitialStates().getNumberOfSetBits()==1,storm::exceptions::InvalidArgumentException,"Model is required to have exactly one initial state.");
STORM_LOG_WARN_COND((!storm::settings::getModule<storm::settings::modules::RegionSettings>().doApprox()||this->isApproximationApplicable),"the approximation is only correct if the model has only linear functions (more precisely: linear in a single parameter, i.e., functions like p*q are okay). As this is not the case, approximation is deactivated");
STORM_LOG_WARN_COND((!settings.doApprox()||this->isApproximationApplicable),"the approximation is only correct if the model has only linear functions (more precisely: linear in a single parameter, i.e., functions like p*q are okay). As this is not the case, approximation is deactivated");
this->addOption(storm::settings::OptionBuilder(moduleName,regionfileOptionName,true,"Specifies the regions via a file. Format: 0.3<=p<=0.4,0.2<=q<=0.5; 0.6<=p<=0.7,0.8<=q<=0.9")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The file from which to read the regions.")