STORM_LOG_THROW(model->isOfType(storm::models::ModelType::Dtmc)||model->isOfType(storm::models::ModelType::Ctmc),storm::exceptions::NotSupportedException,"Symbolic bisimulation minimization is currently only available for DTMCs and CTMCs.");
STORM_LOG_THROW(bisimulationType==storm::storage::BisimulationType::Strong,storm::exceptions::NotSupportedException,"Currently only strong bisimulation is supported.");
STORM_LOG_THROW(false,storm::exceptions::NotSupportedException,"Symbolic bisimulation minimization is not supported for this combination of DD library and value type.");
STORM_LOG_WARN_COND(!bisimulationSettings.isWeakBisimulationSet(),"Weak bisimulation is currently not supported on DDs. Falling back to strong bisimulation.");
this->addOption(storm::settings::OptionBuilder(moduleName,quotientFormatOptionName,true,"Sets the format in which the quotient is extracted (only applies to DD-based bisimulation).").addArgument(storm::settings::ArgumentBuilder::createStringArgument("format","The format of the quotient.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(quotTypes)).setDefaultValueString("dd").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,representativeOptionName,false,"Sets whether to use representatives in the quotient rather than block numbers.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,signatureModeOptionName,false,"Sets the signature computation mode.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("mode","The mode to use.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(signatureModes)).setDefaultValueString("eager").build()).build());
STORM_LOG_WARN_COND(storm::settings::getModule<storm::settings::modules::GeneralSettings>().isBisimulationSet()||!optionsSet,"Bisimulation minimization is not selected, so setting options for bisimulation has no effect.");
STORM_LOG_DEBUG("Signature "<<iterations<<"["<<index<<"] DD has "<<signature.getSignatureAdd().getNodeCount()<<" nodes and partition DD has "<<currentPartition.getNodeCount()<<" nodes.");
STORM_LOG_DEBUG("Iteration "<<iterations<<" produced "<<newPartition.getNumberOfBlocks()<<" blocks and was completed in "<<iterationTime<<"ms (signature: "<<signatureTime<<"ms, refinement: "<<refinementTime<<"ms). Signature DD has "<<signature.getSignatureAdd().getNodeCount()<<" nodes and partition DD has "<<currentPartition.getNodeCount()<<" nodes.");
STORM_LOG_DEBUG("Iteration "<<iterations<<" produced "<<newPartition.getNumberOfBlocks()<<" blocks and was completed in "<<iterationTime<<"ms (signature: "<<signatureTime<<"ms, refinement: "<<refinementTime<<"ms).");
STORM_LOG_THROW(bisimulationType==storm::storage::BisimulationType::Strong,storm::exceptions::NotSupportedException,"Currently only strong bisimulation is supported.");