STORM_LOG_THROW(model->isSparseModel(),storm::exceptions::NotSupportedException,"Counterexample generation is currently only supported for sparse models.");
STORM_LOG_THROW(sparseModel->isOfType(storm::models::ModelType::Mdp),storm::exceptions::NotSupportedException,"Counterexample is currently only supported for MDPs.");
STORM_LOG_THROW(sparseModel->isOfType(storm::models::ModelType::Dtmc)||sparseModel->isOfType(storm::models::ModelType::Mdp),storm::exceptions::NotSupportedException,"Counterexample is currently only supported for discrete-time models.");
STORM_LOG_THROW(sparseModel->isOfType(storm::models::ModelType::Mdp),storm::exceptions::NotSupportedException,"Counterexample generation using MILP is currently only supported for MDPs.");
STORM_LOG_THROW(sparseModel->isOfType(storm::models::ModelType::Dtmc)||sparseModel->isOfType(storm::models::ModelType::Mdp),storm::exceptions::NotSupportedException,"Counterexample generation using MaxSAT is currently only supported for discrete-time models.");
STORM_LOG_THROW(model.isOfType(storm::models::ModelType::Dtmc)||model.isOfType(storm::models::ModelType::Mdp),storm::exceptions::NotSupportedException,"MaxSAT-based counterexample generation is supported only for discrete-time models.");
std::cout<<std::endl<<"Generating minimal label counterexample for formula "<<*formula<<std::endl;
STORM_LOG_THROW(formula->isProbabilityOperatorFormula(),storm::exceptions::InvalidPropertyException,"Counterexample generation does not support this kind of formula. Expecting a probability operator as the outermost formula element.");
STORM_LOG_THROW(mdp.getNumberOfChoices()==labelSets.size(),storm::exceptions::InvalidArgumentException,"The given number of labels does not match the number of choices.");
STORM_LOG_THROW(model.getNumberOfChoices()==labelSets.size(),storm::exceptions::InvalidArgumentException,"The given number of labels does not match the number of choices.");