3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-29 20:05:51 +00:00

unit propagate with fingerprints

This commit is contained in:
Nikolaj Bjorner 2021-10-04 20:01:46 -07:00
parent 8a85cfdb12
commit 281fb67d88
6 changed files with 50 additions and 37 deletions

View file

@ -90,10 +90,10 @@ namespace q {
unsigned_vector m_clause_queue;
euf::enode_pair_vector m_evidence;
binding* alloc_binding(unsigned n, app* pat, unsigned max_generation, unsigned min_top, unsigned max_top);
euf::enode* const* alloc_binding(clause& c, euf::enode* const* _binding);
binding* alloc_binding(clause& c, app* pat, euf::enode* const* _bidning, unsigned max_generation, unsigned min_top, unsigned max_top);
void add_binding(clause& c, app* pat, euf::enode* const* _binding, unsigned max_generation, unsigned min_top, unsigned max_top);
sat::ext_justification_idx mk_justification(unsigned idx, clause& c, euf::enode* const* b);
void ensure_ground_enodes(expr* e);
@ -121,13 +121,15 @@ namespace q {
bool flush_prop_queue();
void propagate(bool is_conflict, unsigned idx, sat::ext_justification_idx j_idx);
bool propagate(bool flush);
public:
ematch(euf::solver& ctx, solver& s);
bool operator()();
bool propagate(bool flush);
bool unit_propagate();
// void init_search();