Storm
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.
13class QualitativeCheckResult;
14template<typename ValueType>
15class QuantitativeCheckResult;
16class ExplicitQualitativeCheckResult;
17
18template<typename ValueType>
19class ExplicitQuantitativeCheckResult;
20
21template<typename ValueType>
22class ExplicitParetoCurveCheckResult;
23
24template<typename ValueType>
25class LexicographicCheckResult;
26
27template<storm::dd::DdType Type>
28class SymbolicQualitativeCheckResult;
29
30template<storm::dd::DdType Type, typename ValueType>
31class SymbolicQuantitativeCheckResult;
32
33template<storm::dd::DdType Type, typename ValueType>
34class HybridQuantitativeCheckResult;
35
36template<storm::dd::DdType Type, typename ValueType>
37class SymbolicParetoCurveCheckResult;
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
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<storm::dd::DdType Type>
103
104 template<storm::dd::DdType Type>
106
107 template<storm::dd::DdType Type, typename ValueType>
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 virtual bool hasScheduler() const;
126
127 virtual std::ostream& writeToStream(std::ostream& out) const = 0;
128};
129
130std::ostream& operator<<(std::ostream& out, CheckResult const& checkResult);
131} // namespace modelchecker
132} // namespace storm
133
134#endif /* STORM_MODELCHECKER_CHECKRESULT_H_ */
ExplicitQuantitativeCheckResult< ValueType > & asExplicitQuantitativeCheckResult()
LexicographicCheckResult< ValueType > & asLexicographicCheckResult()
ExplicitParetoCurveCheckResult< ValueType > & asExplicitParetoCurveCheckResult()
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
HybridQuantitativeCheckResult< Type, ValueType > const & asHybridQuantitativeCheckResult() const
QuantitativeCheckResult< ValueType > & asQuantitativeCheckResult()
virtual bool isParetoCurveCheckResult() const
SymbolicQuantitativeCheckResult< Type, ValueType > & asSymbolicQuantitativeCheckResult()
ExplicitQualitativeCheckResult & asExplicitQualitativeCheckResult()
ExplicitParetoCurveCheckResult< ValueType > const & asExplicitParetoCurveCheckResult() const
SymbolicQualitativeCheckResult< Type > const & asSymbolicQualitativeCheckResult() const
QuantitativeCheckResult< ValueType > const & asQuantitativeCheckResult() const
virtual bool isResultForAllStates() const
ExplicitQuantitativeCheckResult< ValueType > const & asExplicitQuantitativeCheckResult() const
virtual bool isExplicitQualitativeCheckResult() 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
virtual bool isHybrid() const
LexicographicCheckResult< ValueType > const & asLexicographicCheckResult() const
HybridQuantitativeCheckResult< Type, ValueType > & asHybridQuantitativeCheckResult()
std::ostream & operator<<(std::ostream &os, RegionCheckEngine const &e)
LabParser.cpp.
Definition cli.cpp:18