3#include <carl/formula/Formula.h>
5#include <unordered_set>
12template<
typename ValueType,
typename Enable =
void>
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;
25template<
typename ValueType>
29 std::unordered_set<typename ConstraintType<ValueType>::val> wellformedConstraintSet;
33 std::unordered_set<typename ConstraintType<ValueType>::val> graphPreservingConstraintSet;
36 std::set<storm::RationalFunctionVariable> variableSet;
38 void wellformedRequiresNonNegativeEntries(std::vector<ValueType>
const&);
67 std::set<storm::RationalFunctionVariable>
const&
getVariables()
const;
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.
carl::Formula< typename storm::RationalFunction::PolyType::PolyType > val