Skip to content

Commit 86e4782

Browse files
[string-refinement] Allow index set saturation if
not_contains_constraints are present In the case of not_contains_constraints, the fixpoint of the index set may not be enough to ensure the model is correct. Therefore we allow continuing even if the index set does not grow, progress is ensured in that case by the addition of counter-examples.
1 parent c9c612d commit 86e4782

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/solvers/refinement/string_refinement.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -600,11 +600,15 @@ decision_proceduret::resultt string_refinementt::dec_solve()
600600

601601
if(index_sets.current.empty())
602602
{
603-
error() << "dec_solve: current index set is empty, "
604-
<< "this should not happen" << eom;
605-
return resultt::D_ERROR;
603+
if(axioms.not_contains.empty())
604+
{
605+
error() << "dec_solve: current index set is empty, "
606+
<< "this should not happen" << eom;
607+
return resultt::D_ERROR;
608+
}
609+
else
610+
debug() << "dec_solve: current index set is empty" << eom;
606611
}
607-
608612
current_constraints.clear();
609613
for(const auto &instance :
610614
generate_instantiations(

0 commit comments

Comments
 (0)