3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-29 20:05:51 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2023-12-08 04:49:38 -08:00
parent 2c7e5e1730
commit d0d9b4dd17
7 changed files with 83 additions and 90 deletions

View file

@ -42,9 +42,8 @@ namespace polysat {
struct atom {
bool_var m_bv;
unsigned m_index = 0;
signed_constraint m_sc;
atom(bool_var b) :m_bv(b) {}
unsigned m_index;
atom(bool_var b, unsigned index) :m_bv(b), m_index(index) {}
~atom() { }
};
@ -92,7 +91,7 @@ namespace polysat {
void erase_bv2a(bool_var bv) { m_bool_var2atom[bv] = nullptr; }
atom* get_bv2a(bool_var bv) const { return m_bool_var2atom.get(bv, nullptr); }
class mk_atom_trail;
atom* mk_atom(sat::literal lit, signed_constraint& sc);
void mk_atom(sat::bool_var bv, signed_constraint& sc);
void set_bit_eh(theory_var v, literal l, unsigned idx);
void init_bits(expr* e, expr_ref_vector const & bits);
void mk_bits(theory_var v);
@ -122,7 +121,6 @@ namespace polysat {
void internalize_polysat(app* a);
void assert_bv2int_axiom(app * n);
void assert_int2bv_axiom(app* n);
void internalize_bit2bool(atom* a, expr* e, unsigned idx);
pdd expr2pdd(expr* e);
pdd var2pdd(euf::theory_var v);
@ -134,7 +132,7 @@ namespace polysat {
void set_conflict(dependency_vector const& core);
void set_lemma(vector<signed_constraint> const& lemma, unsigned level, dependency_vector const& core);
void propagate(signed_constraint sc, dependency_vector const& deps);
void propagate(solver_assertion as, bool sign, dependency_vector const& deps);
void propagate(dependency const& d, bool sign, dependency_vector const& deps);
void add_lemma(vector<signed_constraint> const& lemma);