@@ -760,6 +760,11 @@ decision_proceduret::resultt string_refinementt::dec_solve()
760760 return resultt::D_SATISFIABLE;
761761 }
762762 }
763+ else
764+ {
765+ debug () << " check_SAT: got UNSAT or ERROR" << eom;
766+ return res;
767+ }
763768
764769 initial_index_set (index_set, current_index_set, ns, universal_axioms);
765770 update_index_set (index_set, current_index_set, ns, current_constraints);
@@ -812,44 +817,21 @@ decision_proceduret::resultt string_refinementt::dec_solve()
812817 // We will then relaunch the solver with these added lemmas.
813818 current_index_set.clear ();
814819 update_index_set (index_set, current_index_set, ns, current_constraints);
815- current_constraints.clear ();
816- for (const auto &lemma :
817- generate_instantiations (
818- debug (), current_index_set, universal_axioms))
819- add_lemma (lemma);
820- display_current_index_set (debug (), ns, current_index_set);
821820
822821 if (current_index_set.empty ())
823822 {
824823 debug () << " current index set is empty" << eom;
825- if (config_.trace )
826- {
827- const auto lemmas=concretize_results (
828- get,
829- found_length,
830- found_content,
831- symbol_resolve,
832- index_set,
833- generator.max_string_length ,
834- debug (),
835- ns,
836- generator.get_created_strings (),
837- current_index_set,
838- universal_axioms);
839- for (const auto &lemma : lemmas)
840- add_lemma (lemma);
841- display_current_index_set (debug (), ns, current_index_set);
842- return resultt::D_SATISFIABLE;
843- }
844- else
845- {
846- debug () << " check_SAT: the model is correct and "
847- << " does not need concretizing" << eom;
848- return resultt::D_SATISFIABLE;
849- }
824+ return resultt::D_ERROR;
850825 }
851826
852827 display_index_set (debug (), ns, current_index_set, index_set);
828+ current_constraints.clear ();
829+ for (const auto &instance :
830+ generate_instantiations (
831+ debug (), current_index_set, universal_axioms))
832+ add_lemma (instance);
833+ display_current_index_set (debug (), ns, current_index_set);
834+
853835 debug () << " instantiating NOT_CONTAINS constraints" << ' \n ' ;
854836 for (unsigned i=0 ; i<not_contains_axioms.size (); i++)
855837 {
0 commit comments