Skip to content

Commit ef8f38f

Browse files
author
Joel Allred
committed
Get rid of array if-exprts before passing to the solver
This should allow us to remove usages of adjust_if_recursive
1 parent 784edde commit ef8f38f

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/solvers/strings/string_refinement.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -738,7 +738,9 @@ decision_proceduret::resultt string_refinementt::dec_solve()
738738
}
739739

740740
for(const exprt &lemma : generator.constraints.existential)
741-
add_lemma(lemma);
741+
{
742+
add_lemma(substitute_array_access(lemma, generator.fresh_symbol, true));
743+
}
742744

743745
// All generated strings should have non-negative length
744746
for(const auto &pair : generator.array_pool.created_strings())
@@ -785,7 +787,9 @@ decision_proceduret::resultt string_refinementt::dec_solve()
785787
const auto initial_instances =
786788
generate_instantiations(index_sets, axioms, not_contain_witnesses);
787789
for(const auto &instance : initial_instances)
788-
add_lemma(instance);
790+
{
791+
add_lemma(substitute_array_access(instance, generator.fresh_symbol, true));
792+
}
789793

790794
while((loop_bound_--) > 0)
791795
{

0 commit comments

Comments
 (0)