4#include <unordered_set>
6#include <carl/formula/Formula.h>
14template<
typename ValueType,
typename Enable =
void>
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;
27template<
typename ValueType>
31 std::unordered_set<typename ConstraintType<ValueType>::val> wellformedConstraintSet;
35 std::unordered_set<typename ConstraintType<ValueType>::val> graphPreservingConstraintSet;
38 std::set<storm::RationalFunctionVariable> variableSet;
40 void wellformedRequiresNonNegativeEntries(std::vector<ValueType>
const&);
69 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