3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-11-06 06:16:02 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-09-02 14:43:49 -07:00
parent e4b7b7bdf6
commit d83d0a83d6
14 changed files with 274 additions and 59 deletions

View file

@ -103,8 +103,8 @@ namespace euf {
if (lit.sign()) {
sat::bool_var v = si.add_bool_var(n->get_owner());
sat::literal lit2 = literal(v, false);
s().mk_clause(~lit, lit2, sat::status::euf(false));
s().mk_clause(lit, ~lit2, sat::status::euf(false));
s().mk_clause(~lit, lit2, sat::status::th(false, m.get_basic_family_id()));
s().mk_clause(lit, ~lit2, sat::status::th(false, m.get_basic_family_id()));
lit = lit2;
}
sat::bool_var v = lit.var();
@ -132,7 +132,7 @@ namespace euf {
if (sz <= 1)
return;
sat::status st = sat::status::euf(m_is_redundant);
sat::status st = sat::status::th(m_is_redundant, m.get_basic_family_id());
static const unsigned distinct_max_args = 32;
if (sz <= distinct_max_args) {
sat::literal_vector lits;
@ -175,7 +175,7 @@ namespace euf {
SASSERT(m.is_distinct(e));
static const unsigned distinct_max_args = 32;
unsigned sz = e->get_num_args();
sat::status st = sat::status::euf(m_is_redundant);
sat::status st = sat::status::th(m_is_redundant, m.get_basic_family_id());
if (sz <= 1) {
s().mk_clause(0, nullptr, st);
return;
@ -209,7 +209,7 @@ namespace euf {
void solver::axiomatize_basic(enode* n) {
expr* e = n->get_owner();
sat::status st = sat::status::euf(m_is_redundant);
sat::status st = sat::status::th(m_is_redundant, m.get_basic_family_id());
if (m.is_ite(e)) {
app* a = to_app(e);
expr* c = a->get_arg(0);