Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
GraphConditions.h
Go to the documentation of this file.
1#pragma once
2
3#include <carl/formula/Formula.h>
4#include <type_traits>
5#include <unordered_set>
8
9namespace storm {
10namespace analysis {
11
12template<typename ValueType, typename Enable = void>
14 typedef void* val;
15};
16
17template<typename ValueType>
18struct ConstraintType<ValueType, typename std::enable_if<std::is_same<storm::RationalFunction, ValueType>::value>::type> {
19 typedef carl::Formula<typename storm::RationalFunction::PolyType::PolyType> val;
20};
21
25template<typename ValueType>
27 private:
28 // A set of constraints that says that the DTMC actually has valid probability distributions in all states.
29 std::unordered_set<typename ConstraintType<ValueType>::val> wellformedConstraintSet;
30
31 // A set of constraints that makes sure that the underlying graph of the model does not change depending
32 // on the parameter values.
33 std::unordered_set<typename ConstraintType<ValueType>::val> graphPreservingConstraintSet;
34
35 // A set of variables
36 std::set<storm::RationalFunctionVariable> variableSet;
37
38 void wellformedRequiresNonNegativeEntries(std::vector<ValueType> const&);
39
40 public:
48
54 std::unordered_set<typename ConstraintType<ValueType>::val> const& getWellformedConstraints() const;
55
61 std::unordered_set<typename ConstraintType<ValueType>::val> const& getGraphPreservingConstraints() const;
62
67 std::set<storm::RationalFunctionVariable> const& getVariables() const;
68
75
82};
83
84} // namespace analysis
85} // namespace storm
Class to collect constraints on parametric Markov chains.
std::unordered_set< typename ConstraintType< ValueType >::val > const & getWellformedConstraints() const
Returns the set of wellformed-ness constraints.
std::unordered_set< typename ConstraintType< ValueType >::val > const & getGraphPreservingConstraints() const
Returns the set of graph-preserving constraints.
std::set< storm::RationalFunctionVariable > const & getVariables() const
Returns the set of variables in the model.
void operator()(storm::models::sparse::Model< ValueType > const &model)
Constructs the constraints for the given Model by calling the process method.
Base class for all sparse models.
Definition Model.h:33
LabParser.cpp.
Definition cli.cpp:18
void process()