3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-29 09:28:45 +00:00

pipeline with release mode (#4206)

* pipeline with release mode

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* na

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-05-04 12:30:03 -07:00 committed by GitHub
parent be998c308c
commit b81ab94db7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 152 additions and 82 deletions

View file

@ -48,7 +48,7 @@ namespace smt {
/**
* Synthesize induction lemmas from induction candidates
*/
class create_induction_lemmas {
class induction_lemmas {
context& ctx;
ast_manager& m;
value_sweep& vs;
@ -82,6 +82,8 @@ namespace smt {
}
};
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;
bool viable_induction_sort(sort* s);
bool viable_induction_parent(enode* p, enode* n);
@ -92,12 +94,15 @@ namespace smt {
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 create_hypotheses(unsigned depth, expr* sk0, expr_ref& alpha, expr* sk, literal_vector& lits);
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);
literal mk_literal(expr* e);
void add_th_lemma(literal_vector const& lits);
public:
create_induction_lemmas(context& ctx, ast_manager& m, value_sweep& vs);
induction_lemmas(context& ctx, ast_manager& m, value_sweep& vs);
bool operator()(literal lit);
};
@ -111,7 +116,7 @@ namespace smt {
ast_manager& m;
value_sweep vs;
collect_induction_literals m_collect_literals;
create_induction_lemmas m_create_lemmas;
induction_lemmas m_create_lemmas;
void init_values();