mirror of
https://github.com/Z3Prover/z3
synced 2025-08-16 07:45:27 +00:00
fix memory leak in proof production in theory_pb
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
282b781d88
commit
026265f9a3
6 changed files with 243 additions and 267 deletions
|
@ -77,33 +77,33 @@ private:
|
|||
bool check1_spc(proof* p, expr_ref_vector& side_conditions);
|
||||
bool check_arith_proof(proof* p);
|
||||
bool check_arith_literal(bool is_pos, app* lit, rational const& coeff, expr_ref& sum, bool& is_strict);
|
||||
bool match_fact(proof const* p, expr_ref& fact) const;
|
||||
bool match_fact(proof const* p, expr*& fact) const;
|
||||
void add_premise(proof* p);
|
||||
bool match_proof(proof const* p) const;
|
||||
bool match_proof(proof const* p, proof_ref& p0) const;
|
||||
bool match_proof(proof const* p, proof_ref& p0, proof_ref& p1) const;
|
||||
bool match_proof(proof const* p, proof*& p0) const;
|
||||
bool match_proof(proof const* p, proof*& p0, proof*& p1) const;
|
||||
bool match_proof(proof const* p, proof_ref_vector& parents) const;
|
||||
bool match_binary(expr const* e, func_decl_ref& d, expr_ref& t1, expr_ref& t2) const;
|
||||
bool match_op(expr const* e, decl_kind k, expr_ref& t1, expr_ref& t2) const;
|
||||
bool match_op(expr const* e, decl_kind k, expr_ref& t) const;
|
||||
bool match_op(expr const* e, decl_kind k, expr_ref_vector& terms) const;
|
||||
bool match_iff(expr const* e, expr_ref& t1, expr_ref& t2) const;
|
||||
bool match_implies(expr const* e, expr_ref& t1, expr_ref& t2) const;
|
||||
bool match_eq(expr const* e, expr_ref& t1, expr_ref& t2) const;
|
||||
bool match_oeq(expr const* e, expr_ref& t1, expr_ref& t2) const;
|
||||
bool match_not(expr const* e, expr_ref& t) const;
|
||||
bool match_or(expr const* e, expr_ref_vector& terms) const;
|
||||
bool match_and(expr const* e, expr_ref_vector& terms) const;
|
||||
bool match_app(expr const* e, func_decl_ref& d, expr_ref_vector& terms) const;
|
||||
bool match_quantifier(expr const*, bool& is_univ, sort_ref_vector&, expr_ref& body) const;
|
||||
bool match_binary(expr const* e, func_decl*& d, expr*& t1, expr*& t2) const;
|
||||
bool match_op(expr const* e, decl_kind k, expr*& t1, expr*& t2) const;
|
||||
bool match_op(expr const* e, decl_kind k, expr*& t) const;
|
||||
bool match_op(expr const* e, decl_kind k, ptr_vector<expr>& terms) const;
|
||||
bool match_iff(expr const* e, expr*& t1, expr*& t2) const;
|
||||
bool match_implies(expr const* e, expr*& t1, expr*& t2) const;
|
||||
bool match_eq(expr const* e, expr*& t1, expr*& t2) const;
|
||||
bool match_oeq(expr const* e, expr*& t1, expr*& t2) const;
|
||||
bool match_not(expr const* e, expr*& t) const;
|
||||
bool match_or(expr const* e, ptr_vector<expr>& terms) const;
|
||||
bool match_and(expr const* e, ptr_vector<expr>& terms) const;
|
||||
bool match_app(expr const* e, func_decl*& d, ptr_vector<expr>& terms) const;
|
||||
bool match_quantifier(expr const*, bool& is_univ, sort_ref_vector&, expr*& body) const;
|
||||
bool match_negated(expr const* a, expr* b) const;
|
||||
bool match_equiv(expr const* a, expr_ref& t1, expr_ref& t2) const;
|
||||
bool match_equiv(expr const* a, expr*& t1, expr*& t2) const;
|
||||
void get_ors(expr* e, expr_ref_vector& ors);
|
||||
void get_hypotheses(proof* p, expr_ref_vector& ante);
|
||||
|
||||
bool match_nil(expr const* e) const;
|
||||
bool match_cons(expr const* e, expr_ref& a, expr_ref& b) const;
|
||||
bool match_atom(expr const* e, expr_ref& a) const;
|
||||
bool match_cons(expr const* e, expr*& a, expr*& b) const;
|
||||
bool match_atom(expr const* e, expr*& a) const;
|
||||
expr* mk_nil();
|
||||
expr* mk_cons(expr* a, expr* b);
|
||||
expr* mk_atom(expr* e);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue