We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
2 parents ccd97d4 + 14f542e commit eefccd7Copy full SHA for eefccd7
src/solvers/strings/string_refinement.cpp
@@ -1213,6 +1213,12 @@ static exprt negation_of_not_contains_constraint(
1213
1214
// The negated existential becomes an universal, and this is the unrolling of
1215
// that universal quantifier.
1216
+ // Ff the upper bound is smaller than the lower bound (specifically, it might
1217
+ // actually be negative as it is initially unconstrained) then there is
1218
+ // nothing to do (and the reserve call would fail).
1219
+ if(ube < lbe)
1220
+ return and_exprt(univ_bounds, get(constraint.premise));
1221
+
1222
std::vector<exprt> conjuncts;
1223
conjuncts.reserve(numeric_cast_v<std::size_t>(ube - lbe));
1224
for(mp_integer i = lbe; i < ube; ++i)
0 commit comments