mirror of
https://github.com/Z3Prover/z3
synced 2025-06-22 05:43:39 +00:00
handle better cancellation for parallel, switch between cube mode and base level mode in smt.threads, expose parameters to control theory_bv and phase caching
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
fae206b738
commit
ca3ec22b7a
18 changed files with 261 additions and 149 deletions
|
@ -893,7 +893,11 @@ namespace smt {
|
|||
|
||||
void mk_clause(literal l1, literal l2, literal l3, justification * j);
|
||||
|
||||
void mk_th_axiom(theory_id tid, unsigned num_lits, literal * lits, unsigned num_params = 0, parameter * params = nullptr);
|
||||
void context::mk_th_clause(theory_id tid, unsigned num_lits, literal * lits, unsigned num_params, parameter * params, clause_kind k);
|
||||
|
||||
void mk_th_axiom(theory_id tid, unsigned num_lits, literal * lits, unsigned num_params = 0, parameter * params = nullptr) {
|
||||
mk_th_clause(tid, num_lits, lits, num_params, params, CLS_TH_AXIOM);
|
||||
}
|
||||
|
||||
void mk_th_axiom(theory_id tid, literal l1, literal l2, unsigned num_params = 0, parameter * params = nullptr);
|
||||
|
||||
|
@ -903,6 +907,24 @@ namespace smt {
|
|||
mk_th_axiom(tid, ls.size(), ls.c_ptr(), num_params, params);
|
||||
}
|
||||
|
||||
void mk_th_lemma(theory_id tid, literal l1, literal l2, unsigned num_params = 0, parameter * params = nullptr) {
|
||||
literal ls[2] = { l1, l2 };
|
||||
mk_th_lemma(tid, 2, ls, num_params, params);
|
||||
}
|
||||
|
||||
void mk_th_lemma(theory_id tid, literal l1, literal l2, literal l3, unsigned num_params = 0, parameter * params = nullptr) {
|
||||
literal ls[3] = { l1, l2, l3 };
|
||||
mk_th_lemma(tid, 3, ls, num_params, params);
|
||||
}
|
||||
|
||||
void mk_th_lemma(theory_id tid, unsigned num_lits, literal * lits, unsigned num_params = 0, parameter * params = nullptr) {
|
||||
mk_th_clause(tid, num_lits, lits, num_params, params, CLS_TH_LEMMA);
|
||||
}
|
||||
|
||||
void mk_th_lemma(theory_id tid, literal_vector const& ls, unsigned num_params = 0, parameter * params = nullptr) {
|
||||
mk_th_lemma(tid, ls.size(), ls.c_ptr(), num_params, params);
|
||||
}
|
||||
|
||||
/*
|
||||
* Provide a hint to the core solver that the specified literals form a "theory case split".
|
||||
* The core solver will enforce the condition that exactly one of these literals can be
|
||||
|
@ -1209,6 +1231,7 @@ namespace smt {
|
|||
|
||||
virtual bool resolve_conflict();
|
||||
|
||||
|
||||
// -----------------------------------
|
||||
//
|
||||
// Propagation
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue