// // Created by Jip Spel on 03.09.18. // #ifndef STORM_ASSUMPTIONMAKER_H #define STORM_ASSUMPTIONMAKER_H #include "AssumptionChecker.h" #include "Lattice.h" #include "LatticeExtender.h" #include "storm/storage/expressions/BinaryRelationExpression.h" #include "storm-pars/utility/ModelInstantiator.h" namespace storm { namespace analysis { template class AssumptionMaker { typedef std::shared_ptr AssumptionType; public: /*! * Constructs AssumptionMaker based on the lattice extender, the assumption checker and number of states of the model. * TODO * @param latticeExtender The LatticeExtender which needs the assumptions made by the AssumptionMaker. * @param checker The AssumptionChecker which checks the assumptions at sample points. * @param numberOfStates The number of states of the model. */ AssumptionMaker( AssumptionChecker* checker, uint_fast64_t numberOfStates, bool validate); std::map, AssumptionStatus> createAndCheckAssumption(uint_fast64_t val1, uint_fast64_t val2, Lattice* lattice); private: AssumptionChecker* assumptionChecker; std::shared_ptr expressionManager; uint_fast64_t numberOfStates; bool validate; }; } } #endif //STORM_ASSUMPTIONMAKER_H