3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-06 17:44:08 +00:00

handle ac-op in legacy special relations procedure by adding warning

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2023-12-03 12:55:37 -08:00
parent 1b1ebaa3b0
commit bd8bed1759
2 changed files with 9 additions and 3 deletions

View file

@ -130,7 +130,11 @@ namespace smt {
} }
bool theory_special_relations::internalize_term(app * term) { bool theory_special_relations::internalize_term(app * term) {
verbose_stream() << mk_pp(term, m) << "\n"; m_terms.push_back(term);
ctx.push_trail(push_back_vector(m_terms));
std::stringstream strm;
strm << "term not not handled by special relations procedure. Use sat.smt=true " << mk_pp(term, m);
warning_msg(strm.str().c_str());
return false; return false;
} }
@ -207,9 +211,10 @@ namespace smt {
if (new_equality) { if (new_equality) {
return FC_CONTINUE; return FC_CONTINUE;
} }
else { else if (!m_terms.empty())
return FC_GIVEUP;
else
return FC_DONE; return FC_DONE;
}
} }
lbool theory_special_relations::final_check_lo(relation& r) { lbool theory_special_relations::final_check_lo(relation& r) {

View file

@ -131,6 +131,7 @@ namespace smt {
special_relations_util m_util; special_relations_util m_util;
atoms m_atoms; atoms m_atoms;
unsigned_vector m_atoms_lim; unsigned_vector m_atoms_lim;
ptr_vector<app> m_terms;
obj_map<func_decl, relation*> m_relations; obj_map<func_decl, relation*> m_relations;
bool_var2atom m_bool_var2atom; bool_var2atom m_bool_var2atom;
bool m_can_propagate; bool m_can_propagate;