STORM_LOG_THROW(program.getModelType()==storm::prism::Program::ModelType::MDP,storm::exceptions::NotSupportedException,"Currently only MDPs are supported by the game-based model checker.");
STORM_LOG_THROW(program.getModelType()==storm::prism::Program::ModelType::DTMC||program.getModelType()==storm::prism::Program::ModelType::MDP,storm::exceptions::NotSupportedException,"Currently only DTMCs/MDPs are supported by the game-based model checker.");
// Start by preparing the program. That is, we flatten the modules if there is more than one.
// Start by preparing the program. That is, we flatten the modules if there is more than one.
STORM_LOG_THROW(checkTask.isOnlyInitialStatesRelevantSet(),storm::exceptions::InvalidPropertyException,"The game-based abstraction refinement model checker can only compute the result for the initial states.");
STORM_LOG_THROW(checkTask.isOnlyInitialStatesRelevantSet(),storm::exceptions::InvalidPropertyException,"The game-based abstraction refinement model checker can only compute the result for the initial states.");
// 1. build initial abstraction based on the the constraint expression (if not 'true') and the target state expression.
// 1. build initial abstraction based on the the constraint expression (if not 'true') and the target state expression.
this->addOption(storm::settings::OptionBuilder(moduleName,addAllGuardsOptionName,true,"Sets whether all guards are added as initial predicates.").build());
STORM_LOG_THROW(program.getModelType()==storm::prism::Program::ModelType::MDP,storm::exceptions::InvalidSettingsException,"Cannot treat non-MDP model using the abstraction refinement engine.");
STORM_LOG_THROW(program.getModelType()==storm::prism::Program::ModelType::DTMC||program.getModelType()==storm::prism::Program::ModelType::MDP,storm::exceptions::InvalidSettingsException,"Can only treat DTMCs/MDPs using the abstraction refinement engine.");
xxxxxxxxxx