From b7ae17461d929f64e34d5a69afaaac2885ca3b66 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Dejan=20Jovanovi=C4=87?= Date: Sun, 10 Jul 2011 12:32:13 +0000 Subject: [PATCH] yet another uf bug fix, hopefully the last --- src/theory/uf/theory_uf.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/theory/uf/theory_uf.cpp b/src/theory/uf/theory_uf.cpp index 438854a9a..409edc53a 100644 --- a/src/theory/uf/theory_uf.cpp +++ b/src/theory/uf/theory_uf.cpp @@ -65,6 +65,16 @@ void TheoryUF::check(Effort level) { case kind::NOT: if (assertion[0].getKind() == kind::APPLY_UF) { d_equalityEngine.addEquality(assertion[0], d_false, assertion); + } else { + // disequality + TNode equality = assertion[0]; + if (d_equalityEngine.getRepresentative(equality[0]) == d_equalityEngine.getRepresentative(equality[1])) { + std::vector assumptions; + assumptions.push_back(assertion); + explain(equality, assumptions); + d_conflictNode = mkAnd(assumptions); + d_conflict = true; + } } break; default: -- 2.30.2