3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-11 02:08:07 +00:00

add facility to add lemmas

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2017-06-12 19:44:02 -07:00
parent af6ebbcd92
commit ce592d7716
16 changed files with 111 additions and 21 deletions

View file

@ -209,7 +209,7 @@ namespace sat {
}
}
void solver::mk_clause(unsigned num_lits, literal * lits) {
void solver::mk_clause(unsigned num_lits, literal * lits, bool learned) {
m_model_is_current = false;
DEBUG_CODE({
for (unsigned i = 0; i < num_lits; i++)
@ -217,24 +217,24 @@ namespace sat {
});
if (m_user_scope_literals.empty()) {
mk_clause_core(num_lits, lits, false);
mk_clause_core(num_lits, lits, learned);
}
else {
m_aux_literals.reset();
m_aux_literals.append(num_lits, lits);
m_aux_literals.append(m_user_scope_literals);
mk_clause_core(m_aux_literals.size(), m_aux_literals.c_ptr(), false);
mk_clause_core(m_aux_literals.size(), m_aux_literals.c_ptr(), learned);
}
}
void solver::mk_clause(literal l1, literal l2) {
void solver::mk_clause(literal l1, literal l2, bool learned) {
literal ls[2] = { l1, l2 };
mk_clause(2, ls);
mk_clause(2, ls, learned);
}
void solver::mk_clause(literal l1, literal l2, literal l3) {
void solver::mk_clause(literal l1, literal l2, literal l3, bool learned) {
literal ls[3] = { l1, l2, l3 };
mk_clause(3, ls);
mk_clause(3, ls, learned);
}
void solver::del_clause(clause& c) {