3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-25 10:05:32 +00:00

#5417 - revise q_eval based on bug based on non-chronological dependencies with post-hoc explain function

This commit is contained in:
Nikolaj Bjorner 2021-07-19 07:40:46 -07:00
parent e8bc9f3469
commit 7d915eb295
7 changed files with 99 additions and 145 deletions

View file

@ -156,26 +156,26 @@ namespace euf {
svector<update_record> m_updates;
unsigned_vector m_scopes;
enode_vector m_expr2enode;
enode* m_tmp_eq { nullptr };
enode* m_tmp_node { nullptr };
unsigned m_tmp_node_capacity { 0 };
enode* m_tmp_eq = nullptr;
enode* m_tmp_node = nullptr;
unsigned m_tmp_node_capacity = 0;
enode_vector m_nodes;
expr_ref_vector m_exprs;
vector<enode_vector> m_decl2enodes;
enode_vector m_empty_enodes;
unsigned m_num_scopes { 0 };
bool m_inconsistent { false };
enode *m_n1 { nullptr };
enode *m_n2 { nullptr };
unsigned m_num_scopes = 0;
bool m_inconsistent = false;
enode *m_n1 = nullptr;
enode *m_n2 = nullptr;
justification m_justification;
unsigned m_new_lits_qhead { 0 };
unsigned m_new_th_eqs_qhead { 0 };
unsigned m_new_lits_qhead = 0;
unsigned m_new_th_eqs_qhead = 0;
svector<enode_bool_pair> m_new_lits;
svector<th_eq> m_new_th_eqs;
bool_vector m_th_propagates_diseqs;
enode_vector m_todo;
stats m_stats;
bool m_uses_congruence { false };
bool m_uses_congruence = false;
std::function<void(enode*,enode*)> m_on_merge;
std::function<void(enode*)> m_on_make;
std::function<void(expr*,expr*,expr*)> m_used_eq;

View file

@ -125,7 +125,7 @@ namespace euf {
ast_manager & m_manager;
bool m_commutativity{ false }; //!< true if the last found congruence used commutativity
bool m_commutativity = false; //!< true if the last found congruence used commutativity
ptr_vector<void> m_tables;
map<decl_info, unsigned, decl_hash, decl_eq> m_func_decl2id;