#ifndef STORM_MODELCHECKER_EXPLORATION_EXPLORATION_DETAIL_STATEGENERATION_H_ #define STORM_MODELCHECKER_EXPLORATION_EXPLORATION_DETAIL_STATEGENERATION_H_ #include "src/generator/CompressedState.h" #include "src/generator/PrismNextStateGenerator.h" namespace storm { namespace generator { template class PrismNextStateGenerator; } namespace modelchecker { namespace exploration_detail { template class StateGeneration { public: StateGeneration(storm::prism::Program const& program, storm::generator::VariableInformation const& variableInformation, storm::expressions::Expression const& conditionStateExpression, storm::expressions::Expression const& targetStateExpression); void setStateToIdCallback(std::function const& stateToIdCallback); void load(storm::generator::CompressedState const& state); std::vector getInitialStates(); storm::generator::StateBehavior expand(); bool isConditionState() const; bool isTargetState() const; private: storm::generator::PrismNextStateGenerator generator; std::function stateToIdCallback; storm::expressions::Expression conditionStateExpression; storm::expressions::Expression targetStateExpression; }; } } } #endif /* STORM_MODELCHECKER_EXPLORATION_EXPLORATION_DETAIL_STATEGENERATION_H_ */