#pragma once #include "storm/storage/dd/DdType.h" #include "storm/abstraction/MenuGame.h" namespace storm { namespace abstraction { template class MenuGameAbstractor { public: /// Retrieves the abstraction. virtual MenuGame abstract() = 0; /// Retrieves information about the abstraction. virtual AbstractionInformation const& getAbstractionInformation() const = 0; /// Methods to refine the abstraction. virtual void refine(std::vector const& predicates) = 0; virtual void refine(storm::dd::Bdd const& pivotState, storm::dd::Bdd const& player1Choice, storm::dd::Bdd const& lowerChoice, storm::dd::Bdd const& upperChoice) = 0; /// Exports a representation of the current abstraction state in the dot format. virtual void exportToDot(std::string const& filename, storm::dd::Bdd const& highlightStates, storm::dd::Bdd const& filter) const = 0; }; } }