diff --git a/src/sat/smt/euf_solver.cpp b/src/sat/smt/euf_solver.cpp index 51c0518e5..2d4b9847e 100644 --- a/src/sat/smt/euf_solver.cpp +++ b/src/sat/smt/euf_solver.cpp @@ -21,6 +21,7 @@ Author: #include "sat/smt/sat_smt.h" #include "sat/smt/pb_solver.h" #include "sat/smt/bv_solver.h" +#include "sat/smt/polysat_solver.h" #include "sat/smt/euf_solver.h" #include "sat/smt/array_solver.h" #include "sat/smt/arith_solver.h" @@ -134,8 +135,11 @@ namespace euf { special_relations_util sp(m); if (pb.get_family_id() == fid) ext = alloc(pb::solver, *this, fid); - else if (bvu.get_family_id() == fid) + else if (bvu.get_family_id() == fid) { ext = alloc(bv::solver, *this, fid); + dealloc(ext); + ext = alloc(polysat::solver, *this, fid); + } else if (au.get_family_id() == fid) ext = alloc(array::solver, *this, fid); else if (fpa.get_family_id() == fid) diff --git a/src/sat/smt/polysat/polysat_assignment.cpp b/src/sat/smt/polysat/polysat_assignment.cpp index aedf6d409..329733d89 100644 --- a/src/sat/smt/polysat/polysat_assignment.cpp +++ b/src/sat/smt/polysat/polysat_assignment.cpp @@ -12,6 +12,7 @@ Author: --*/ +#include #include "sat/smt/polysat/polysat_assignment.h" #include "sat/smt/polysat/polysat_core.h" @@ -43,18 +44,6 @@ namespace polysat { assignment::assignment(core& s) : m_core(s) { } - - assignment assignment::clone() const { - assignment a(s()); - a.m_pairs = m_pairs; - a.m_subst.reserve(m_subst.size()); - for (unsigned i = m_subst.size(); i-- > 0; ) - if (m_subst[i]) - a.m_subst.set(i, alloc(substitution, *m_subst[i])); - a.m_subst_trail = m_subst_trail; - return a; - } - bool assignment::contains(pvar var) const { return subst(s().size(var)).contains(var); } diff --git a/src/sat/smt/polysat/polysat_assignment.h b/src/sat/smt/polysat/polysat_assignment.h index befaad0b7..559f6dab2 100644 --- a/src/sat/smt/polysat/polysat_assignment.h +++ b/src/sat/smt/polysat/polysat_assignment.h @@ -91,9 +91,6 @@ namespace polysat { // prevent implicit copy, use clone() if you do need a copy assignment(assignment const&) = delete; assignment& operator=(assignment const&) = delete; - assignment(assignment&&) = default; - assignment& operator=(assignment&&) = default; - assignment clone() const; void push(pvar var, rational const& value); void pop();