3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-22 05:43:39 +00:00

remove assignments to lambdas, exposed by #4169

This commit is contained in:
Nikolaj Bjorner 2020-04-30 12:35:07 -07:00
parent 9c52d4e615
commit 7ae20476c2
3 changed files with 22 additions and 4 deletions

View file

@ -107,6 +107,7 @@ namespace smt {
// enodes. Examples: boolean expression nested in an
// uninterpreted function.
expr_ref_vector m_e_internalized_stack; // stack of the expressions already internalized as enodes.
quantifier_ref_vector m_l_internalized_stack;
ptr_vector<justification> m_justifications;
@ -776,7 +777,6 @@ namespace smt {
void undo(context & ctx) override { ctx.undo_mk_bool_var(); }
};
mk_bool_var_trail m_mk_bool_var_trail;
void undo_mk_bool_var();
friend class mk_enode_trail;
@ -784,11 +784,18 @@ namespace smt {
public:
void undo(context & ctx) override { ctx.undo_mk_enode(); }
};
mk_enode_trail m_mk_enode_trail;
void undo_mk_enode();
friend class mk_lambda_trail;
class mk_lambda_trail : public trail<context> {
public:
void undo(context & ctx) override { ctx.undo_mk_lambda(); }
};
mk_lambda_trail m_mk_lambda_trail;
void undo_mk_lambda();
void apply_sort_cnstr(app * term, enode * e);
bool simplify_aux_clause_literals(unsigned & num_lits, literal * lits, literal_buffer & simp_lits);