Storm 1.11.1.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ExplicitQualitativeCheckResult.h
Go to the documentation of this file.
1#pragma once
2
3#include <boost/variant.hpp>
4#include <map>
5#include <optional>
6
13
14namespace storm {
15
16namespace modelchecker {
18 public:
20 typedef std::map<storm::storage::sparse::state_type, bool> map_type;
21
29 ExplicitQualitativeCheckResult(boost::variant<vector_type, map_type> const& truthValues);
30 ExplicitQualitativeCheckResult(boost::variant<vector_type, map_type>&& truthValues);
31
36
37 virtual std::unique_ptr<CheckResult> clone() const override;
38
40
41 virtual bool isExplicit() const override;
42 virtual bool isResultForAllStates() const override;
43
44 virtual bool isExplicitQualitativeCheckResult() const override;
45
46 virtual QualitativeCheckResult& operator&=(QualitativeCheckResult const& other) override;
47 virtual QualitativeCheckResult& operator|=(QualitativeCheckResult const& other) override;
48 virtual void complement() override;
49
50 vector_type const& getTruthValuesVector() const;
51 map_type const& getTruthValuesMap() const;
52
53 virtual bool existsTrue() const override;
54 virtual bool forallTrue() const override;
55 virtual uint64_t count() const override;
56
57 virtual std::ostream& writeToStream(std::ostream& out) const override;
58
59 virtual void filter(QualitativeCheckResult const& filter) override;
60
61 template<typename JsonRationalType>
62 storm::json<JsonRationalType> toJson(std::optional<storm::storage::sparse::StateValuations> const& stateValuations = std::nullopt,
63 std::optional<storm::models::sparse::StateLabeling> const& stateLabels = std::nullopt) const;
64
65 private:
66 static void performLogicalOperation(ExplicitQualitativeCheckResult& first, QualitativeCheckResult const& second, bool logicalAnd);
67
68 // The values of the quantitative check result.
69 boost::variant<vector_type, map_type> truthValues;
70};
71} // namespace modelchecker
72} // namespace storm
virtual std::ostream & writeToStream(std::ostream &out) const override
ExplicitQualitativeCheckResult(ExplicitQualitativeCheckResult &&other)=default
virtual std::unique_ptr< CheckResult > clone() const override
storm::json< JsonRationalType > toJson(std::optional< storm::storage::sparse::StateValuations > const &stateValuations=std::nullopt, std::optional< storm::models::sparse::StateLabeling > const &stateLabels=std::nullopt) const
virtual void filter(QualitativeCheckResult const &filter) override
Filters the current result wrt.
std::map< storm::storage::sparse::state_type, bool > map_type
ExplicitQualitativeCheckResult(ExplicitQualitativeCheckResult const &other)=default
ExplicitQualitativeCheckResult & operator=(ExplicitQualitativeCheckResult const &other)=default
virtual QualitativeCheckResult & operator|=(QualitativeCheckResult const &other) override
virtual QualitativeCheckResult & operator&=(QualitativeCheckResult const &other) override
ExplicitQualitativeCheckResult & operator=(ExplicitQualitativeCheckResult &&other)=default
bool operator[](storm::storage::sparse::state_type index) const
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:16
nlohmann::basic_json< std::map, std::vector, std::string, bool, int64_t, uint64_t, ValueType > json
Definition JsonForward.h:10