mirror of
https://github.com/Z3Prover/z3
synced 2025-04-29 20:05:51 +00:00
#5417 - revise q_eval based on bug based on non-chronological dependencies with post-hoc explain function
This commit is contained in:
parent
e8bc9f3469
commit
7d915eb295
7 changed files with 99 additions and 145 deletions
|
@ -63,7 +63,7 @@ namespace q {
|
|||
quantifier_stat_gen m_qstat_gen;
|
||||
fingerprints m_fingerprints;
|
||||
scoped_ptr<binding> m_tmp_binding;
|
||||
unsigned m_tmp_binding_capacity { 0 };
|
||||
unsigned m_tmp_binding_capacity = 0;
|
||||
queue m_inst_queue;
|
||||
pattern_inference_rw m_infer_patterns;
|
||||
scoped_ptr<q::mam> m_mam, m_lazy_mam;
|
||||
|
@ -72,13 +72,14 @@ namespace q {
|
|||
vector<unsigned_vector> m_watch; // expr_id -> clause-index*
|
||||
stats m_stats;
|
||||
expr_fast_mark1 m_mark;
|
||||
unsigned m_generation_propagation_threshold{ 3 };
|
||||
unsigned m_generation_propagation_threshold = 3;
|
||||
ptr_vector<app> m_ground;
|
||||
bool m_in_queue_set{ false };
|
||||
bool m_in_queue_set = false;
|
||||
nat_set m_node_in_queue;
|
||||
nat_set m_clause_in_queue;
|
||||
unsigned m_qhead { 0 };
|
||||
unsigned m_qhead = 0;
|
||||
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);
|
||||
|
@ -115,7 +116,7 @@ namespace q {
|
|||
|
||||
bool propagate(bool flush);
|
||||
|
||||
void init_search();
|
||||
// void init_search();
|
||||
|
||||
void add(quantifier* q);
|
||||
|
||||
|
@ -127,7 +128,7 @@ namespace q {
|
|||
void on_binding(quantifier* q, app* pat, euf::enode* const* binding, unsigned max_generation, unsigned min_gen, unsigned max_gen);
|
||||
|
||||
// callbacks from queue
|
||||
lbool evaluate(euf::enode* const* binding, clause& c) { return m_eval(binding, c); }
|
||||
lbool evaluate(euf::enode* const* binding, clause& c) { m_evidence.reset(); return m_eval(binding, c, m_evidence); }
|
||||
|
||||
void add_instantiation(clause& c, binding& b, sat::literal lit);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue