18namespace modelchecker {
19template<
typename SparseSmgModelType>
25template<
typename SparseSmgModelType>
27 bool* requiresSingleInitialState) {
33template<
typename SparseSmgModelType>
35 bool requiresSingleInitialState =
false;
36 if (canHandleStatic(checkTask, &requiresSingleInitialState)) {
37 return !requiresSingleInitialState || this->getModel().getInitialStates().getNumberOfSetBits() == 1;
43template<
typename SparseSmgModelType>
51 STORM_LOG_THROW(
false, storm::exceptions::NotImplementedException,
"Only game formulas with Operatorformulas as subformula are supported.");
54template<
typename SparseSmgModelType>
57 STORM_LOG_THROW(
false, storm::exceptions::NotImplementedException,
"Not implemented.");
60template<
typename SparseSmgModelType>
65 auto coalitionStates = this->getModel().computeStatesOfCoalition(checkTask.
getPlayerCoalition());
66 std::cout <<
"Found " << coalitionStates.getNumberOfSetBits() <<
" states in coalition.\n";
67 STORM_LOG_THROW(
false, storm::exceptions::NotImplementedException,
"Not implemented.");
CheckTask< NewFormulaType, ValueType > substituteFormula(NewFormulaType const &newFormula) const
Copies the check task from the source while replacing the formula with the new one.
FormulaType const & getFormula() const
Retrieves the formula from this task.
storm::logic::PlayerCoalition const & getPlayerCoalition() const
Retrieves the player coalition (if set).
bool isPlayerCoalitionSet() const
Retrieves whether a player coalition was set.
virtual std::unique_ptr< CheckResult > computeLongRunAverageProbabilities(Environment const &env, CheckTask< storm::logic::StateFormula, ValueType > const &checkTask) override
virtual std::unique_ptr< CheckResult > checkGameFormula(Environment const &env, CheckTask< storm::logic::GameFormula, ValueType > const &checkTask) override
virtual bool canHandle(CheckTask< storm::logic::Formula, ValueType > const &checkTask) const override
virtual std::unique_ptr< CheckResult > computeLongRunAverageRewards(Environment const &env, CheckTask< storm::logic::LongRunAverageRewardFormula, ValueType > const &checkTask) override
SparseSmgRpatlModelChecker(SparseSmgModelType const &model)
static bool canHandleStatic(CheckTask< storm::logic::Formula, ValueType > const &checkTask, bool *requiresSingleInitialState=nullptr)
Returns false, if this task can certainly not be handled by this model checker (independent of the co...
#define STORM_LOG_THROW(cond, exception, message)
FragmentSpecification rpatl()
FilteredRewardModel< RewardModelType > createFilteredRewardModel(RewardModelType const &baseRewardModel, storm::logic::RewardAccumulation const &acc, bool isDiscreteTimeModel)