mirror of
https://github.com/Z3Prover/z3
synced 2025-06-27 08:28:44 +00:00
small updates
This commit is contained in:
parent
397bf2dec6
commit
5b6255e3d1
2 changed files with 24 additions and 35 deletions
|
@ -49,21 +49,17 @@ namespace smt {
|
|||
* Synthesize induction lemmas from induction candidates
|
||||
*/
|
||||
class create_induction_lemmas {
|
||||
context& ctx;
|
||||
ast_manager& m;
|
||||
value_sweep& vs;
|
||||
context& ctx;
|
||||
ast_manager& m;
|
||||
value_sweep& vs;
|
||||
datatype::util m_dt;
|
||||
arith_util m_a;
|
||||
obj_map<sort, func_decl*> m_sort2skolem;
|
||||
ast_ref_vector m_pinned;
|
||||
unsigned m_num_lemmas;
|
||||
unsigned m_num_lemmas;
|
||||
|
||||
typedef svector<std::pair<expr*,expr*>> expr_pair_vector;
|
||||
|
||||
func_decl* mk_skolem(sort* s);
|
||||
|
||||
struct abstraction {
|
||||
expr_ref m_term;
|
||||
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) {
|
||||
|
@ -71,8 +67,7 @@ namespace smt {
|
|||
}
|
||||
abstraction(ast_manager& m, expr* e, expr_pair_vector const& eqs):
|
||||
m_term(e, m), m_eqs(eqs) {
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
typedef vector<abstraction> abstractions;
|
||||
|
||||
|
@ -90,6 +85,7 @@ namespace smt {
|
|||
bool is_induction_candidate(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* t, expr* sk, abstraction& a, literal lit);
|
||||
literal mk_literal(expr* e);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue