Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ExplicitQualitativeCheckResult.h
Go to the documentation of this file.
1#pragma once
2#include <boost/variant.hpp>
3#include <functional>
4#include <map>
5#include <optional>
6
15
16namespace storm {
17
18namespace modelchecker {
20 public:
22 typedef std::map<storm::storage::sparse::state_type, bool> map_type;
23
31 ExplicitQualitativeCheckResult(boost::variant<vector_type, map_type> const& truthValues);
32 ExplicitQualitativeCheckResult(boost::variant<vector_type, map_type>&& truthValues);
33
36#ifndef WINDOWS
39#endif
40
41 virtual std::unique_ptr<CheckResult> clone() const override;
42
45
46 virtual bool isExplicit() const override;
47 virtual bool isResultForAllStates() const override;
48
49 virtual bool isExplicitQualitativeCheckResult() const override;
50
51 virtual QualitativeCheckResult& operator&=(QualitativeCheckResult const& other) override;
52 virtual QualitativeCheckResult& operator|=(QualitativeCheckResult const& other) override;
53 virtual void complement() override;
54
55 vector_type const& getTruthValuesVector() const;
56 map_type const& getTruthValuesMap() const;
57
58 virtual bool existsTrue() const override;
59 virtual bool forallTrue() const override;
60 virtual uint64_t count() const override;
61
62 virtual std::ostream& writeToStream(std::ostream& out) const override;
63
64 virtual void filter(QualitativeCheckResult const& filter) override;
65
66 template<typename JsonRationalType>
67 storm::json<JsonRationalType> toJson(std::optional<storm::storage::sparse::StateValuations> const& stateValuations = std::nullopt,
68 std::optional<storm::models::sparse::StateLabeling> const& stateLabels = std::nullopt) const;
69
70 private:
71 static void performLogicalOperation(ExplicitQualitativeCheckResult& first, QualitativeCheckResult const& second, bool logicalAnd);
72
73 // The values of the quantitative check result.
74 boost::variant<vector_type, map_type> truthValues;
75};
76} // namespace modelchecker
77} // 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
void setValue(storm::storage::sparse::state_type, bool value)
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:18
LabParser.cpp.
Definition cli.cpp:18
nlohmann::basic_json< std::map, std::vector, std::string, bool, int64_t, uint64_t, ValueType > json
Definition JsonForward.h:10