mirror of
https://github.com/Z3Prover/z3
synced 2025-08-15 15:25:26 +00:00
na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
a34c5a9450
commit
3985943eec
3 changed files with 38 additions and 167 deletions
|
@ -58,30 +58,6 @@ namespace smt {
|
|||
unsigned m_num_lemmas;
|
||||
|
||||
typedef svector<std::pair<expr*,expr*>> expr_pair_vector;
|
||||
|
||||
struct abstraction {
|
||||
expr_ref m_term;
|
||||
expr_pair_vector m_eqs;
|
||||
abstraction(expr_ref& e): m_term(e) {}
|
||||
abstraction(ast_manager& m, expr* e, expr* n1, expr* n2): m_term(e, m) {
|
||||
if (n1 != n2) m_eqs.push_back(std::make_pair(n1, n2));
|
||||
}
|
||||
abstraction(ast_manager& m, expr* e, expr_pair_vector const& eqs):
|
||||
m_term(e, m), m_eqs(eqs) {
|
||||
}
|
||||
};
|
||||
typedef vector<abstraction> abstractions;
|
||||
|
||||
struct abstraction_arg {
|
||||
expr_ref_vector m_terms;
|
||||
expr_pair_vector m_eqs;
|
||||
abstraction_arg(ast_manager& m): m_terms(m) {}
|
||||
void push_back(abstraction& a) {
|
||||
m_terms.push_back(a.m_term);
|
||||
m_eqs.append(a.m_eqs);
|
||||
}
|
||||
};
|
||||
typedef vector<abstraction_arg> abstraction_args;
|
||||
typedef std::pair<expr_ref_vector, expr_ref> cond_subst_t;
|
||||
typedef vector<cond_subst_t> cond_substs_t;
|
||||
|
||||
|
@ -90,14 +66,10 @@ namespace smt {
|
|||
bool viable_induction_children(enode* n);
|
||||
bool viable_induction_term(enode* p , enode* n);
|
||||
enode_vector induction_positions(enode* n);
|
||||
void abstract(enode* n, enode* t, expr* x, abstractions& result);
|
||||
void abstract1(enode* n, enode* t, expr* x, abstractions& result);
|
||||
void filter_abstractions(bool sign, abstractions& abs);
|
||||
void create_lemmas(expr* sk, abstraction& a, literal lit);
|
||||
void mk_hypothesis_substs(unsigned depth, expr* x, cond_substs_t& subst);
|
||||
void mk_hypothesis_substs_rec(unsigned depth, sort* s, expr* y, expr_ref_vector& conds, cond_substs_t& subst);
|
||||
void mk_hypothesis_lemma(expr_ref_vector const& conds, expr_pair_vector const& subst, literal alpha);
|
||||
void create_hypotheses(unsigned depth, expr* sk, literal alpha);
|
||||
void create_hypotheses(unsigned depth, expr_ref_vector const& sks, literal alpha);
|
||||
literal mk_literal(expr* e);
|
||||
void add_th_lemma(literal_vector const& lits);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue