8namespace modelchecker {
19 virtual std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const = 0;
28 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const = 0;
47 IsMaximum(uint64_t varIndex, std::vector<uint64_t>
const &varIndices) : varIndex(varIndex), varIndices(varIndices) {}
51 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
54 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
58 std::vector<uint64_t> varIndices;
66 IsMinimum(uint64_t varIndex, std::vector<uint64_t>
const &varIndices) : varIndex(varIndex), varIndices(varIndices) {}
70 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
73 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
77 std::vector<uint64_t> varIndices;
82 BetweenValues(uint64_t varIndex, uint64_t lower, uint64_t upper) : varIndex(varIndex), upperBound(upper), lowerBound(lower) {}
86 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
89 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
99 And(std::vector<std::shared_ptr<SmtConstraint>>
const &constraints) : constraints(constraints) {}
103 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
106 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
109 std::vector<std::shared_ptr<SmtConstraint>> constraints;
114 Or(std::vector<std::shared_ptr<SmtConstraint>>
const &constraints) : constraints(constraints) {}
118 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
121 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
124 std::vector<std::shared_ptr<SmtConstraint>> constraints;
129 Implies(std::shared_ptr<SmtConstraint> l, std::shared_ptr<SmtConstraint> r) : lhs(l), rhs(r) {}
131 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
134 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
137 std::shared_ptr<SmtConstraint> lhs;
138 std::shared_ptr<SmtConstraint> rhs;
143 Iff(std::shared_ptr<SmtConstraint> l, std::shared_ptr<SmtConstraint> r) : lhs(l), rhs(r) {}
145 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
148 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
151 std::shared_ptr<SmtConstraint> lhs;
152 std::shared_ptr<SmtConstraint> rhs;
161 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
164 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
172 IsBoolValue(uint64_t varIndex,
bool val) : varIndex(varIndex), value(val) {}
176 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
179 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
192 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
195 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
208 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
211 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
220 IsLessConstant(uint64_t varIndex, uint64_t val) : varIndex(varIndex), value(val) {}
224 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
227 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
240 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
243 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
252 IsEqual(uint64_t varIndex1, uint64_t varIndex2) : var1Index(varIndex1), var2Index(varIndex2) {}
256 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
259 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
268 IsUnequal(uint64_t varIndex1, uint64_t varIndex2) : var1Index(varIndex1), var2Index(varIndex2) {}
272 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
275 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
284 IsLess(uint64_t varIndex1, uint64_t varIndex2) : var1Index(varIndex1), var2Index(varIndex2) {}
288 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
291 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
300 IsLessEqual(uint64_t varIndex1, uint64_t varIndex2) : var1Index(varIndex1), var2Index(varIndex2) {}
304 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
307 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
320 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
323 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
326 std::vector<uint64_t> varIndices;
331 Sorted(std::vector<uint64_t> varIndices) : varIndices(varIndices) {}
335 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
338 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
341 std::vector<uint64_t> varIndices;
346 IfThenElse(std::shared_ptr<SmtConstraint> ifC, std::shared_ptr<SmtConstraint> thenC, std::shared_ptr<SmtConstraint> elseC)
347 : ifConstraint(ifC), thenConstraint(thenC), elseConstraint(elseC) {}
349 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
352 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
355 std::shared_ptr<SmtConstraint> ifConstraint;
356 std::shared_ptr<SmtConstraint> thenConstraint;
357 std::shared_ptr<SmtConstraint> elseConstraint;
364 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override;
367 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override;
370 std::vector<uint64_t> varIndices;
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
And(std::vector< std::shared_ptr< SmtConstraint > > const &constraints)
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
BetweenValues(uint64_t varIndex, uint64_t lower, uint64_t upper)
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
FalseCountIsEqualConstant(std::vector< uint64_t > varIndices, uint64_t val)
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.
IfThenElse(std::shared_ptr< SmtConstraint > ifC, std::shared_ptr< SmtConstraint > thenC, std::shared_ptr< SmtConstraint > elseC)
Iff(std::shared_ptr< SmtConstraint > l, std::shared_ptr< SmtConstraint > r)
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.
Implies(std::shared_ptr< SmtConstraint > l, std::shared_ptr< SmtConstraint > r)
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.
IsBoolValue(uint64_t varIndex, bool val)
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.
virtual ~IsConstantValue()
IsConstantValue(uint64_t varIndex, uint64_t val)
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
IsEqual(uint64_t varIndex1, uint64_t varIndex2)
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.
virtual ~IsLessConstant()
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
IsLessConstant(uint64_t varIndex, uint64_t val)
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
IsLessEqualConstant(uint64_t varIndex, uint64_t val)
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.
virtual ~IsLessEqualConstant()
IsLessEqual(uint64_t varIndex1, uint64_t varIndex2)
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.
IsLess(uint64_t varIndex1, uint64_t varIndex2)
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.
IsMaximum(uint64_t varIndex, std::vector< uint64_t > const &varIndices)
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
IsMinimum(uint64_t varIndex, std::vector< uint64_t > const &varIndices)
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.
IsNotConstantValue(uint64_t varIndex, uint64_t val)
virtual ~IsNotConstantValue()
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
IsUnequal(uint64_t varIndex1, uint64_t varIndex2)
Or(std::vector< std::shared_ptr< SmtConstraint > > const &constraints)
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
virtual ~PairwiseDifferent()
PairwiseDifferent(std::vector< uint64_t > const &indices)
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.
virtual std::string toSmtlib2(std::vector< std::string > const &varNames) const =0
Generate a string describing the constraint in Smtlib2 format.
void setDescription(std::string const &descr)
virtual std::string description() const
virtual storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const =0
Generate an expression describing the constraint in Storm format.
Sorted(std::vector< uint64_t > varIndices)
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
storm::expressions::Expression toExpression(std::vector< std::string > const &varNames, std::shared_ptr< storm::expressions::ExpressionManager > manager) const override
Generate an expression describing the constraint in Storm format.