STORM_LOG_THROW(program.getModelType()==storm::prism::Program::ModelType::DTMC||program.getModelType()==storm::prism::Program::ModelType::MDP,storm::exceptions::InvalidSettingsException,"Currently exploration-based verification is only available for DTMCs and MDPs.");
STORM_LOG_THROW(!program.specifiesSystemComposition(),storm::exceptions::WrongFormatException,"The explicit next-state generator currently does not support custom system compositions.");
STORM_LOG_THROW(!this->program.specifiesSystemComposition(),storm::exceptions::WrongFormatException,"The explicit next-state generator currently does not support custom system compositions.");
STORM_LOG_THROW(rewardModelName.empty(),storm::exceptions::InvalidArgumentException,"Cannot build unknown reward model '"<<rewardModelName<<"'.");
STORM_LOG_THROW(program.getNumberOfRewardModels()==1,storm::exceptions::InvalidArgumentException,"Reference to standard reward model is ambiguous.");
STORM_LOG_THROW(program.getNumberOfRewardModels()>0,storm::exceptions::InvalidArgumentException,"Reference to standard reward model is invalid, because there is no reward model.");
STORM_LOG_THROW(this->program.getNumberOfRewardModels()==1,storm::exceptions::InvalidArgumentException,"Reference to standard reward model is ambiguous.");
STORM_LOG_THROW(this->program.getNumberOfRewardModels()>0,storm::exceptions::InvalidArgumentException,"Reference to standard reward model is invalid, because there is no reward model.");
}
}
// If no reward model was yet added, but there was one that was given in the options, we try to build