Storm 1.11.1.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
GraphConditions.h
Go to the documentation of this file.
1#pragma once
2
3#include <type_traits>
4#include <unordered_set>
5
6#include <carl/formula/Formula.h>
7
10
11namespace storm {
12namespace analysis {
13
14template<typename ValueType, typename Enable = void>
16 typedef void* val;
17};
18
19template<typename ValueType>
20struct ConstraintType<ValueType, typename std::enable_if<std::is_same<storm::RationalFunction, ValueType>::value>::type> {
21 typedef carl::Formula<typename storm::RationalFunction::PolyType::PolyType> val;
22};
23
27template<typename ValueType>
29 private:
30 // A set of constraints that says that the DTMC actually has valid probability distributions in all states.
31 std::unordered_set<typename ConstraintType<ValueType>::val> wellformedConstraintSet;
32
33 // A set of constraints that makes sure that the underlying graph of the model does not change depending
34 // on the parameter values.
35 std::unordered_set<typename ConstraintType<ValueType>::val> graphPreservingConstraintSet;
36
37 // A set of variables
38 std::set<storm::RationalFunctionVariable> variableSet;
39
40 void wellformedRequiresNonNegativeEntries(std::vector<ValueType> const&);
41
42 public:
50
56 std::unordered_set<typename ConstraintType<ValueType>::val> const& getWellformedConstraints() const;
57
63 std::unordered_set<typename ConstraintType<ValueType>::val> const& getGraphPreservingConstraints() const;
64
69 std::set<storm::RationalFunctionVariable> const& getVariables() const;
70
77
84};
85
86} // namespace analysis
87} // 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:32
LabParser.cpp.
void process()