Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
CheckResult.h
Go to the documentation of this file.
1#pragma once
2
3#include <iosfwd>
4#include <memory>
5
8
9namespace storm {
10namespace modelchecker {
11// Forward-declare the existing subclasses.
13template<typename ValueType>
15template<typename ValueType>
17
18template<typename ValueType>
20
21template<typename ValueType>
23
24template<typename ValueType>
26
27template<storm::dd::DdType Type>
29
30template<storm::dd::DdType Type, typename ValueType>
32
33template<storm::dd::DdType Type, typename ValueType>
35
36template<storm::dd::DdType Type, typename ValueType>
38
39// The base class of all check results.
41 public:
42 virtual ~CheckResult() = default;
43
44 virtual std::unique_ptr<CheckResult> clone() const = 0;
45
52 virtual void filter(QualitativeCheckResult const& filter) = 0;
53
54 // Methods to retrieve the actual type of the check result.
55 virtual bool isExplicit() const;
56 virtual bool isSymbolic() const;
57 virtual bool isHybrid() const;
58 virtual bool isQuantitative() const;
59 virtual bool isQualitative() const;
60 virtual bool isParetoCurveCheckResult() const;
61 virtual bool isLexicographicCheckResult() const;
62 virtual bool isExplicitQualitativeCheckResult() const;
63 virtual bool isExplicitQuantitativeCheckResult() const;
64 virtual bool isExplicitParetoCurveCheckResult() const;
65 virtual bool isSymbolicQualitativeCheckResult() const;
66 virtual bool isSymbolicQuantitativeCheckResult() const;
67 virtual bool isSymbolicParetoCurveCheckResult() const;
68 virtual bool isHybridQuantitativeCheckResult() const;
69 virtual bool isResultForAllStates() const;
70
73
74 template<typename ValueType>
76
77 template<typename ValueType>
79
80 template<typename ValueType>
82
83 template<typename ValueType>
85
86 template<typename ValueType>
88
89 template<typename ValueType>
91
92 template<typename ValueType>
94
95 template<typename ValueType>
97
98 template<typename ValueType>
100
101 template<typename ValueType>
103
104 template<storm::dd::DdType Type>
106
107 template<storm::dd::DdType Type>
109
110 template<storm::dd::DdType Type, typename ValueType>
112
113 template<storm::dd::DdType Type, typename ValueType>
115
116 template<storm::dd::DdType Type, typename ValueType>
118
119 template<storm::dd::DdType Type, typename ValueType>
121
122 template<storm::dd::DdType Type, typename ValueType>
124
125 template<storm::dd::DdType Type, typename ValueType>
127
128 virtual bool hasScheduler() const;
129
135 template<typename T>
136 bool hasValueType() const {
137 return hasValueType(typeid(T));
138 }
139
140 virtual std::ostream& writeToStream(std::ostream& out) const = 0;
141
142 private:
143 virtual bool hasValueType(std::type_info const& t) const;
144};
145
146std::ostream& operator<<(std::ostream& out, CheckResult const& checkResult);
147} // namespace modelchecker
148} // namespace storm
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)