Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
AbstractModelChecker.h
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4
8
9namespace storm {
10
11class Environment;
12
13namespace modelchecker {
14class CheckResult;
15
16template<typename ModelType>
18 public:
20 // Intentionally left empty.
21 }
22
23 typedef typename ModelType::ValueType ValueType;
24 using SolutionType = typename std::conditional<std::is_same_v<ValueType, storm::Interval>, double, ValueType>::type;
25
29 virtual std::string getClassName() const;
30
38 virtual bool canHandle(CheckTask<storm::logic::Formula, SolutionType> const& checkTask) const = 0;
39
46 virtual std::unique_ptr<CheckResult> check(Environment const& env, CheckTask<storm::logic::Formula, SolutionType> const& checkTask);
47
52 std::unique_ptr<CheckResult> check(CheckTask<storm::logic::Formula, SolutionType> const& checkTask);
53
54 // The methods to compute probabilities for path formulas.
55 virtual std::unique_ptr<CheckResult> computeProbabilities(Environment const& env, CheckTask<storm::logic::Formula, SolutionType> const& checkTask);
56 virtual std::unique_ptr<CheckResult> computeConditionalProbabilities(Environment const& env,
58 virtual std::unique_ptr<CheckResult> computeBoundedUntilProbabilities(Environment const& env,
60 virtual std::unique_ptr<CheckResult> computeReachabilityProbabilities(Environment const& env,
62 virtual std::unique_ptr<CheckResult> computeGloballyProbabilities(Environment const& env,
64 virtual std::unique_ptr<CheckResult> computeNextProbabilities(Environment const& env, CheckTask<storm::logic::NextFormula, SolutionType> const& checkTask);
65 virtual std::unique_ptr<CheckResult> computeUntilProbabilities(Environment const& env,
67 virtual std::unique_ptr<CheckResult> computeHOAPathProbabilities(Environment const& env,
69 virtual std::unique_ptr<CheckResult> computeLTLProbabilities(Environment const& env, CheckTask<storm::logic::PathFormula, SolutionType> const& checkTask);
70 std::unique_ptr<CheckResult> computeStateFormulaProbabilities(Environment const& env, CheckTask<storm::logic::Formula, SolutionType> const& checkTask);
71
72 // The methods to compute the rewards for path formulas.
73 virtual std::unique_ptr<CheckResult> computeRewards(Environment const& env, CheckTask<storm::logic::Formula, SolutionType> const& checkTask);
74 virtual std::unique_ptr<CheckResult> computeConditionalRewards(Environment const& env,
76 virtual std::unique_ptr<CheckResult> computeCumulativeRewards(Environment const& env,
78 virtual std::unique_ptr<CheckResult> computeInstantaneousRewards(Environment const& env,
80 virtual std::unique_ptr<CheckResult> computeReachabilityRewards(Environment const& env,
82 virtual std::unique_ptr<CheckResult> computeTotalRewards(Environment const& env,
84 virtual std::unique_ptr<CheckResult> computeLongRunAverageRewards(Environment const& env,
86
87 // The methods to compute the long-run average probabilities and timing measures.
88 virtual std::unique_ptr<CheckResult> computeLongRunAverageProbabilities(Environment const& env,
90 virtual std::unique_ptr<CheckResult> computeTimes(Environment const& env, CheckTask<storm::logic::Formula, SolutionType> const& checkTask);
91 virtual std::unique_ptr<CheckResult> computeReachabilityTimes(Environment const& env,
93
94 // The methods to check state formulas.
95 virtual std::unique_ptr<CheckResult> checkStateFormula(Environment const& env, CheckTask<storm::logic::StateFormula, SolutionType> const& checkTask);
96 virtual std::unique_ptr<CheckResult> checkAtomicExpressionFormula(Environment const& env,
98 virtual std::unique_ptr<CheckResult> checkAtomicLabelFormula(Environment const& env,
100 virtual std::unique_ptr<CheckResult> checkBinaryBooleanStateFormula(Environment const& env,
102 virtual std::unique_ptr<CheckResult> checkBooleanLiteralFormula(Environment const& env,
104 virtual std::unique_ptr<CheckResult> checkProbabilityOperatorFormula(Environment const& env,
106 virtual std::unique_ptr<CheckResult> checkRewardOperatorFormula(Environment const& env,
108 virtual std::unique_ptr<CheckResult> checkTimeOperatorFormula(Environment const& env,
110 virtual std::unique_ptr<CheckResult> checkLongRunAverageOperatorFormula(
112 virtual std::unique_ptr<CheckResult> checkUnaryBooleanStateFormula(Environment const& env,
114
115 // The methods to check multi-objective formulas.
116 virtual std::unique_ptr<CheckResult> checkMultiObjectiveFormula(Environment const& env,
118
119 // The methods to check quantile formulas.
120 virtual std::unique_ptr<CheckResult> checkQuantileFormula(Environment const& env, CheckTask<storm::logic::QuantileFormula, SolutionType> const& checkTask);
121
122 // The methods to check lexicographic LTL formulae
123 virtual std::unique_ptr<CheckResult> checkLexObjectiveFormula(Environment const& env,
125
126 // The methods to check game formulas.
127 virtual std::unique_ptr<CheckResult> checkGameFormula(Environment const& env, CheckTask<storm::logic::GameFormula, SolutionType> const& checkTask);
128};
129} // namespace modelchecker
130} // namespace storm
virtual std::unique_ptr< CheckResult > computeProbabilities(Environment const &env, CheckTask< storm::logic::Formula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > computeCumulativeRewards(Environment const &env, CheckTask< storm::logic::CumulativeRewardFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > computeGloballyProbabilities(Environment const &env, CheckTask< storm::logic::GloballyFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > checkLongRunAverageOperatorFormula(Environment const &env, CheckTask< storm::logic::LongRunAverageOperatorFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > check(Environment const &env, CheckTask< storm::logic::Formula, SolutionType > const &checkTask)
Checks the provided formula.
virtual bool canHandle(CheckTask< storm::logic::Formula, SolutionType > const &checkTask) const =0
Determines whether the model checker can handle the given verification task.
virtual std::unique_ptr< CheckResult > computeLTLProbabilities(Environment const &env, CheckTask< storm::logic::PathFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > checkRewardOperatorFormula(Environment const &env, CheckTask< storm::logic::RewardOperatorFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > checkAtomicLabelFormula(Environment const &env, CheckTask< storm::logic::AtomicLabelFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > checkQuantileFormula(Environment const &env, CheckTask< storm::logic::QuantileFormula, SolutionType > const &checkTask)
std::unique_ptr< CheckResult > computeStateFormulaProbabilities(Environment const &env, CheckTask< storm::logic::Formula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > checkUnaryBooleanStateFormula(Environment const &env, CheckTask< storm::logic::UnaryBooleanStateFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > checkProbabilityOperatorFormula(Environment const &env, CheckTask< storm::logic::ProbabilityOperatorFormula, SolutionType > const &checkTask)
typename std::conditional< std::is_same_v< ValueType, storm::Interval >, double, ValueType >::type SolutionType
virtual std::unique_ptr< CheckResult > computeTimes(Environment const &env, CheckTask< storm::logic::Formula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > computeConditionalRewards(Environment const &env, CheckTask< storm::logic::ConditionalFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > checkGameFormula(Environment const &env, CheckTask< storm::logic::GameFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > checkTimeOperatorFormula(Environment const &env, CheckTask< storm::logic::TimeOperatorFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > checkStateFormula(Environment const &env, CheckTask< storm::logic::StateFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > computeReachabilityRewards(Environment const &env, CheckTask< storm::logic::EventuallyFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > checkBinaryBooleanStateFormula(Environment const &env, CheckTask< storm::logic::BinaryBooleanStateFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > computeLongRunAverageProbabilities(Environment const &env, CheckTask< storm::logic::StateFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > computeUntilProbabilities(Environment const &env, CheckTask< storm::logic::UntilFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > checkLexObjectiveFormula(Environment const &env, CheckTask< storm::logic::MultiObjectiveFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > computeLongRunAverageRewards(Environment const &env, CheckTask< storm::logic::LongRunAverageRewardFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > computeHOAPathProbabilities(Environment const &env, CheckTask< storm::logic::HOAPathFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > checkMultiObjectiveFormula(Environment const &env, CheckTask< storm::logic::MultiObjectiveFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > computeReachabilityProbabilities(Environment const &env, CheckTask< storm::logic::EventuallyFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > computeConditionalProbabilities(Environment const &env, CheckTask< storm::logic::ConditionalFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > checkBooleanLiteralFormula(Environment const &env, CheckTask< storm::logic::BooleanLiteralFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > computeRewards(Environment const &env, CheckTask< storm::logic::Formula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > computeInstantaneousRewards(Environment const &env, CheckTask< storm::logic::InstantaneousRewardFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > computeNextProbabilities(Environment const &env, CheckTask< storm::logic::NextFormula, SolutionType > const &checkTask)
virtual std::string getClassName() const
Returns the name of the model checker class (e.g., for display in error messages).
virtual std::unique_ptr< CheckResult > computeReachabilityTimes(Environment const &env, CheckTask< storm::logic::EventuallyFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > checkAtomicExpressionFormula(Environment const &env, CheckTask< storm::logic::AtomicExpressionFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > computeTotalRewards(Environment const &env, CheckTask< storm::logic::TotalRewardFormula, SolutionType > const &checkTask)
virtual std::unique_ptr< CheckResult > computeBoundedUntilProbabilities(Environment const &env, CheckTask< storm::logic::BoundedUntilFormula, SolutionType > const &checkTask)
LabParser.cpp.
Definition cli.cpp:18