Storm 1.13.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
CheckResult.h
Go to the documentation of this file.
1#ifndef STORM_MODELCHECKER_CHECKRESULT_H_
2#define STORM_MODELCHECKER_CHECKRESULT_H_
3
4#include <iosfwd>
5#include <memory>
6
9
10namespace storm {
11namespace modelchecker {
12// Forward-declare the existing subclasses.
14template<typename ValueType>
16template<typename ValueType>
18
19template<typename ValueType>
21
22template<typename ValueType>
24
25template<typename ValueType>
27
28template<storm::dd::DdType Type>
30
31template<storm::dd::DdType Type, typename ValueType>
33
34template<storm::dd::DdType Type, typename ValueType>
36
37template<storm::dd::DdType Type, typename ValueType>
39
40// The base class of all check results.
42 public:
43 virtual ~CheckResult() = default;
44
45 virtual std::unique_ptr<CheckResult> clone() const = 0;
46
53 virtual void filter(QualitativeCheckResult const& filter) = 0;
54
55 // Methods to retrieve the actual type of the check result.
56 virtual bool isExplicit() const;
57 virtual bool isSymbolic() const;
58 virtual bool isHybrid() const;
59 virtual bool isQuantitative() const;
60 virtual bool isQualitative() const;
61 virtual bool isParetoCurveCheckResult() const;
62 virtual bool isLexicographicCheckResult() const;
63 virtual bool isExplicitQualitativeCheckResult() const;
64 virtual bool isExplicitQuantitativeCheckResult() const;
65 virtual bool isExplicitParetoCurveCheckResult() const;
66 virtual bool isSymbolicQualitativeCheckResult() const;
67 virtual bool isSymbolicQuantitativeCheckResult() const;
68 virtual bool isSymbolicParetoCurveCheckResult() const;
69 virtual bool isHybridQuantitativeCheckResult() const;
70 virtual bool isResultForAllStates() const;
71
74
75 template<typename ValueType>
77
78 template<typename ValueType>
80
81 template<typename ValueType>
83
84 template<typename ValueType>
86
87 template<typename ValueType>
89
90 template<typename ValueType>
92
93 template<typename ValueType>
95
96 template<typename ValueType>
98
99 template<typename ValueType>
101
102 template<typename ValueType>
104
105 template<storm::dd::DdType Type>
107
108 template<storm::dd::DdType Type>
110
111 template<storm::dd::DdType Type, typename ValueType>
113
114 template<storm::dd::DdType Type, typename ValueType>
116
117 template<storm::dd::DdType Type, typename ValueType>
119
120 template<storm::dd::DdType Type, typename ValueType>
122
123 template<storm::dd::DdType Type, typename ValueType>
125
126 template<storm::dd::DdType Type, typename ValueType>
128
129 virtual bool hasScheduler() const;
130
136 template<typename T>
137 bool hasValueType() const {
138 return hasValueType(typeid(T));
139 }
140
141 virtual std::ostream& writeToStream(std::ostream& out) const = 0;
142
143 private:
144 virtual bool hasValueType(std::type_info const& t) const;
145};
146
147std::ostream& operator<<(std::ostream& out, CheckResult const& checkResult);
148} // namespace modelchecker
149} // namespace storm
150
151#endif /* STORM_MODELCHECKER_CHECKRESULT_H_ */
virtual bool isSymbolicParetoCurveCheckResult() const
SymbolicParetoCurveCheckResult< Type, ValueType > const & asSymbolicParetoCurveCheckResult() const
virtual bool isSymbolicQuantitativeCheckResult() const
virtual bool isExplicit() const
virtual bool isQuantitative() const
virtual bool isHybridQuantitativeCheckResult() const
virtual bool isSymbolicQualitativeCheckResult() const
virtual bool isExplicitQuantitativeCheckResult() const
ExplicitParetoCurveCheckResult< ValueType > & asExplicitParetoCurveCheckResult()
HybridQuantitativeCheckResult< Type, ValueType > const & asHybridQuantitativeCheckResult() const
QuantitativeCheckResult< ValueType > & asQuantitativeCheckResult()
virtual bool isParetoCurveCheckResult() const
SymbolicQuantitativeCheckResult< Type, ValueType > & asSymbolicQuantitativeCheckResult()
ExplicitParetoCurveCheckResult< ValueType > const & asExplicitParetoCurveCheckResult() const
SymbolicQualitativeCheckResult< Type > const & asSymbolicQualitativeCheckResult() const
QuantitativeCheckResult< ValueType > const & asQuantitativeCheckResult() const
ExplicitQualitativeCheckResult< ValueType > & asExplicitQualitativeCheckResult()
virtual bool isResultForAllStates() const
ExplicitQuantitativeCheckResult< ValueType > const & asExplicitQuantitativeCheckResult() const
virtual bool isExplicitQualitativeCheckResult() const
LexicographicCheckResult< ValueType > & asLexicographicCheckResult()
ExplicitQualitativeCheckResult< ValueType > const & asExplicitQualitativeCheckResult() const
virtual std::ostream & writeToStream(std::ostream &out) const =0
virtual std::unique_ptr< CheckResult > clone() const =0
QualitativeCheckResult & asQualitativeCheckResult()
SymbolicQualitativeCheckResult< Type > & asSymbolicQualitativeCheckResult()
SymbolicQuantitativeCheckResult< Type, ValueType > const & asSymbolicQuantitativeCheckResult() const
virtual void filter(QualitativeCheckResult const &filter)=0
Filters the current result wrt.
virtual bool isSymbolic() const
SymbolicParetoCurveCheckResult< Type, ValueType > & asSymbolicParetoCurveCheckResult()
virtual bool isLexicographicCheckResult() const
virtual bool isQualitative() const
virtual bool hasScheduler() const
virtual bool isExplicitParetoCurveCheckResult() const
bool hasValueType() const
Checks whether the ValueType of the result matches the given type.
virtual bool isHybrid() const
ExplicitQuantitativeCheckResult< ValueType > & asExplicitQuantitativeCheckResult()
LexicographicCheckResult< ValueType > const & asLexicographicCheckResult() const
HybridQuantitativeCheckResult< Type, ValueType > & asHybridQuantitativeCheckResult()
std::ostream & operator<<(std::ostream &os, RegionCheckEngine const &e)