6namespace modelchecker {
13 IsMaximum(uint64_t varIndex, std::vector<uint64_t>
const &varIndices) : varIndex(varIndex), varIndices(varIndices) {}
17 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
18 std::stringstream sstr;
21 for (
auto const &ovi : varIndices) {
22 sstr <<
"(>= " << varNames.at(varIndex) <<
" " << varNames.at(ovi) <<
") ";
26 for (
auto const &ovi : varIndices) {
27 sstr <<
"(= " << varNames.at(varIndex) <<
" " << varNames.at(ovi) <<
") ";
35 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
36 std::vector<storm::expressions::Expression> outerAnd;
37 std::vector<storm::expressions::Expression> innerOr;
38 for (
auto const &ovi : varIndices) {
39 outerAnd.push_back((manager->getVariableExpression(varNames.at(varIndex)) >= manager->getVariableExpression(varNames.at(ovi))));
40 innerOr.push_back((manager->getVariableExpression(varNames.at(varIndex)) == manager->getVariableExpression(varNames.at(ovi))));
42 outerAnd.push_back(disjunction(innerOr));
43 return conjunction(outerAnd);
48 std::vector<uint64_t> varIndices;
56 IsMinimum(uint64_t varIndex, std::vector<uint64_t>
const &varIndices) : varIndex(varIndex), varIndices(varIndices) {}
60 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
61 std::stringstream sstr;
64 for (
auto const &ovi : varIndices) {
65 sstr <<
"(<= " << varNames.at(varIndex) <<
" " << varNames.at(ovi) <<
") ";
69 for (
auto const &ovi : varIndices) {
70 sstr <<
"(= " << varNames.at(varIndex) <<
" " << varNames.at(ovi) <<
") ";
78 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
79 std::vector<storm::expressions::Expression> outerAnd;
80 std::vector<storm::expressions::Expression> innerOr;
81 for (
auto const &ovi : varIndices) {
82 outerAnd.push_back((manager->getVariableExpression(varNames.at(varIndex)) <= manager->getVariableExpression(varNames.at(ovi))));
83 innerOr.push_back((manager->getVariableExpression(varNames.at(varIndex)) == manager->getVariableExpression(varNames.at(ovi))));
85 outerAnd.push_back(disjunction(innerOr));
86 return conjunction(outerAnd);
91 std::vector<uint64_t> varIndices;
96 BetweenValues(uint64_t varIndex, uint64_t lower, uint64_t upper) : varIndex(varIndex), upperBound(upper), lowerBound(lower) {}
100 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
101 std::stringstream sstr;
103 sstr <<
"(>= " << varNames.at(varIndex) <<
" " << lowerBound <<
")";
104 sstr <<
"(<= " << varNames.at(varIndex) <<
" " << upperBound <<
")";
110 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
111 return (manager->getVariableExpression(varNames.at(varIndex)) >= lowerBound) && (manager->getVariableExpression(varNames.at(varIndex)) <= upperBound);
122 And(std::vector<std::shared_ptr<SmtConstraint>>
const &constraints) : constraints(constraints) {}
126 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
127 std::stringstream sstr;
128 if (constraints.empty()) {
132 for (
auto const &c : constraints) {
133 sstr <<
" " << c->toSmtlib2(varNames);
141 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
142 if (constraints.empty()) {
143 return manager->boolean(
true);
145 std::vector<storm::expressions::Expression> conjuncts;
146 for (
auto const &c : constraints) {
147 conjuncts.push_back(c->toExpression(varNames, manager));
149 return conjunction(conjuncts);
154 std::vector<std::shared_ptr<SmtConstraint>> constraints;
159 Or(std::vector<std::shared_ptr<SmtConstraint>>
const &constraints) : constraints(constraints) {}
163 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
164 std::stringstream sstr;
165 if (constraints.empty()) {
169 for (
auto const &c : constraints) {
170 sstr <<
" " << c->toSmtlib2(varNames);
178 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
179 if (constraints.empty()) {
180 return manager->boolean(
false);
182 std::vector<storm::expressions::Expression> disjuncts;
183 for (
auto const &c : constraints) {
184 disjuncts.push_back(c->toExpression(varNames, manager));
186 return disjunction(disjuncts);
191 std::vector<std::shared_ptr<SmtConstraint>> constraints;
196 Implies(std::shared_ptr<SmtConstraint> l, std::shared_ptr<SmtConstraint> r) : lhs(l), rhs(r) {}
198 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
199 std::stringstream sstr;
200 sstr <<
"(=> " << lhs->toSmtlib2(varNames) <<
" " << rhs->toSmtlib2(varNames) <<
")";
205 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
206 return implies(lhs->toExpression(varNames, manager), rhs->toExpression(varNames, manager));
210 std::shared_ptr<SmtConstraint> lhs;
211 std::shared_ptr<SmtConstraint> rhs;
216 Iff(std::shared_ptr<SmtConstraint> l, std::shared_ptr<SmtConstraint> r) : lhs(l), rhs(r) {}
218 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
219 std::stringstream sstr;
220 sstr <<
"(= " << lhs->toSmtlib2(varNames) <<
" " << rhs->toSmtlib2(varNames) <<
")";
225 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
226 return iff(lhs->toExpression(varNames, manager), rhs->toExpression(varNames, manager));
230 std::shared_ptr<SmtConstraint> lhs;
231 std::shared_ptr<SmtConstraint> rhs;
240 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
241 std::stringstream sstr;
242 sstr << (value ?
"true" :
"false");
247 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
248 return manager->boolean(value);
257 IsBoolValue(uint64_t varIndex,
bool val) : varIndex(varIndex), value(val) {}
261 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
262 std::stringstream sstr;
263 assert(varIndex < varNames.size());
265 sstr << varNames.at(varIndex);
267 sstr <<
"(not " << varNames.at(varIndex) <<
")";
273 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
275 return manager->getVariableExpression(varNames.at(varIndex));
277 return !(manager->getVariableExpression(varNames.at(varIndex)));
292 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
293 std::stringstream sstr;
294 assert(varIndex < varNames.size());
295 sstr <<
"(= " << varNames.at(varIndex) <<
" " << value <<
")";
300 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
301 return manager->getVariableExpression(varNames.at(varIndex)) == manager->integer(value);
315 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
316 std::stringstream sstr;
317 assert(varIndex < varNames.size());
318 sstr <<
"(distinct " << varNames.at(varIndex) <<
" " << value <<
")";
323 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
324 return manager->getVariableExpression(varNames.at(varIndex)) != manager->integer(value);
334 IsLessConstant(uint64_t varIndex, uint64_t val) : varIndex(varIndex), value(val) {}
338 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
339 std::stringstream sstr;
340 assert(varIndex < varNames.size());
341 sstr <<
"(< " << varNames.at(varIndex) <<
" " << value <<
")";
346 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
347 return manager->getVariableExpression(varNames.at(varIndex)) < value;
361 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
362 std::stringstream sstr;
363 assert(varIndex < varNames.size());
364 sstr <<
"(< " << value <<
" " << varNames.at(varIndex) <<
")";
369 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
370 return manager->getVariableExpression(varNames.at(varIndex)) > value;
384 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
385 std::stringstream sstr;
386 assert(varIndex < varNames.size());
387 sstr <<
"(<= " << varNames.at(varIndex) <<
" " << value <<
")";
392 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
393 return manager->getVariableExpression(varNames.at(varIndex)) <= value;
407 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
408 std::stringstream sstr;
409 assert(varIndex < varNames.size());
410 sstr <<
"(<= " << value <<
" " << varNames.at(varIndex) <<
")";
415 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
416 return manager->getVariableExpression(varNames.at(varIndex)) >= value;
426 IsEqual(uint64_t varIndex1, uint64_t varIndex2) : var1Index(varIndex1), var2Index(varIndex2) {}
430 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
431 return "(= " + varNames.at(var1Index) +
" " + varNames.at(var2Index) +
")";
435 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
436 return manager->getVariableExpression(varNames.at(var1Index)) == manager->getVariableExpression(varNames.at(var2Index));
446 IsUnequal(uint64_t varIndex1, uint64_t varIndex2) : var1Index(varIndex1), var2Index(varIndex2) {}
450 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
451 return "(distinct " + varNames.at(var1Index) +
" " + varNames.at(var2Index) +
")";
455 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
456 return manager->getVariableExpression(varNames.at(var1Index)) != manager->getVariableExpression(varNames.at(var2Index));
466 IsLess(uint64_t varIndex1, uint64_t varIndex2) : var1Index(varIndex1), var2Index(varIndex2) {}
470 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
471 return "(< " + varNames.at(var1Index) +
" " + varNames.at(var2Index) +
")";
475 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
476 return manager->getVariableExpression(varNames.at(var1Index)) < manager->getVariableExpression(varNames.at(var2Index));
486 IsLessEqual(uint64_t varIndex1, uint64_t varIndex2) : var1Index(varIndex1), var2Index(varIndex2) {}
490 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
491 return "(<= " + varNames.at(var1Index) +
" " + varNames.at(var2Index) +
")";
495 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
496 return manager->getVariableExpression(varNames.at(var1Index)) <= manager->getVariableExpression(varNames.at(var2Index));
506 IsGreaterEqual(uint64_t varIndex1, uint64_t varIndex2) : var1Index(varIndex1), var2Index(varIndex2) {}
510 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
511 return "(>= " + varNames.at(var1Index) +
" " + varNames.at(var2Index) +
")";
515 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
516 return manager->getVariableExpression(varNames.at(var1Index)) >= manager->getVariableExpression(varNames.at(var2Index));
530 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
531 std::stringstream sstr;
538 for (
auto const &varIndex : varIndices) {
539 sstr <<
" " << varNames.at(varIndex);
546 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
547 std::vector<storm::expressions::Expression> conjuncts;
548 for (uint64_t i = 0; i < varIndices.size(); ++i) {
549 for (uint64_t j = i + 1; j < varIndices.size(); ++j) {
551 conjuncts.push_back(manager->getVariableExpression(varNames.at(varIndices.at(i))) !=
552 manager->getVariableExpression(varNames.at(varIndices.at(j))));
556 return conjunction(conjuncts);
560 std::vector<uint64_t> varIndices;
565 Sorted(std::vector<uint64_t> varIndices) : varIndices(varIndices) {}
569 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
570 std::stringstream sstr;
572 for (uint64_t i = 1; i < varIndices.size(); ++i) {
573 sstr <<
"(<= " << varNames.at(varIndices.at(i - 1)) <<
" " << varNames.at(varIndices.at(i)) <<
")";
580 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
581 std::vector<storm::expressions::Expression> conjuncts;
582 for (uint64_t i = 1; i < varIndices.size(); ++i) {
583 conjuncts.push_back(manager->getVariableExpression(varNames.at(varIndices.at(i - 1))) <=
584 manager->getVariableExpression(varNames.at(varIndices.at(i))));
587 return conjunction(conjuncts);
591 std::vector<uint64_t> varIndices;
596 IfThenElse(std::shared_ptr<SmtConstraint> ifC, std::shared_ptr<SmtConstraint> thenC, std::shared_ptr<SmtConstraint> elseC)
597 : ifConstraint(ifC), thenConstraint(thenC), elseConstraint(elseC) {}
599 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
600 std::stringstream sstr;
601 sstr <<
"(ite " << ifConstraint->toSmtlib2(varNames) <<
" " << thenConstraint->toSmtlib2(varNames) <<
" " << elseConstraint->toSmtlib2(varNames) <<
")";
606 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
607 return ite(ifConstraint->toExpression(varNames, manager), thenConstraint->toExpression(varNames, manager),
608 elseConstraint->toExpression(varNames, manager));
612 std::shared_ptr<SmtConstraint> ifConstraint;
613 std::shared_ptr<SmtConstraint> thenConstraint;
614 std::shared_ptr<SmtConstraint> elseConstraint;
621 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
622 std::stringstream sstr;
624 for (uint64_t i = 0; i < varIndices.size(); ++i) {
625 sstr <<
"(ite " << varNames.at(varIndices.at(i)) <<
" 1 0 )";
627 sstr <<
") " << value <<
" )";
632 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
633 std::vector<storm::expressions::Expression> boolToInt;
634 for (uint64_t i = 0; i < varIndices.size(); ++i) {
635 boolToInt.push_back(ite(manager->getVariableExpression(varNames.at(varIndices.at(i))),
637 manager->integer(0)));
639 return sum(boolToInt) < manager->integer(value);
643 std::vector<uint64_t> varIndices;
651 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
652 std::stringstream sstr;
654 for (uint64_t i = 0; i < varIndices.size(); ++i) {
655 sstr <<
"(ite " << varNames.at(varIndices.at(i)) <<
" 0 1 )";
657 sstr <<
") " << value <<
" )";
662 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
663 std::vector<storm::expressions::Expression> boolToInt;
664 for (uint64_t i = 0; i < varIndices.size(); ++i) {
665 boolToInt.push_back(ite(manager->getVariableExpression(varNames.at(varIndices.at(i))),
667 manager->integer(1)));
669 return sum(boolToInt) == manager->integer(value);
673 std::vector<uint64_t> varIndices;
681 std::string
toSmtlib2(std::vector<std::string>
const &varNames)
const override {
682 std::stringstream sstr;
684 for (uint64_t i = 0; i < varIndices.size(); ++i) {
685 sstr <<
"(ite " << varNames.at(varIndices.at(i)) <<
" 1 0 )";
687 sstr <<
") " << value <<
" )";
692 std::shared_ptr<storm::expressions::ExpressionManager> manager)
const override {
693 std::vector<storm::expressions::Expression> boolToInt;
694 for (uint64_t i = 0; i < varIndices.size(); ++i) {
695 boolToInt.push_back(ite(manager->getVariableExpression(varNames.at(varIndices.at(i))),
697 manager->integer(0)));
699 return sum(boolToInt) == manager->integer(value);
703 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.
std::string toSmtlib2(std::vector< std::string > const &varNames) const override
Generate a string describing the constraint in Smtlib2 format.
virtual ~IsGreaterConstant()
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.
IsGreaterConstant(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 ~IsGreaterEqualConstant()
IsGreaterEqualConstant(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.
IsGreaterEqual(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.
virtual ~IsGreaterEqual()
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.
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.
TrueCountIsConstantValue(std::vector< uint64_t > varIndices, uint64_t val)
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.
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.
TrueCountIsLessConstant(std::vector< uint64_t > varIndices, uint64_t val)