diff options
author | Dejan Jovanović <dejan.jovanovic@gmail.com> | 2012-03-22 23:09:03 +0000 |
---|---|---|
committer | Dejan Jovanović <dejan.jovanovic@gmail.com> | 2012-03-22 23:09:03 +0000 |
commit | 1a99b24c49f9b865a70fa626efcb96571499917e (patch) | |
tree | cb3c85e9c439925b74cb4f2e5782a5c19d32fe94 /src/theory/uf | |
parent | c0324db3ac7e5984c632f46690f58c333b9a42b2 (diff) |
* improving arithmetic getEqualityStatus
* some sharing improvements based on model
Diffstat (limited to 'src/theory/uf')
-rw-r--r-- | src/theory/uf/theory_uf.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/theory/uf/theory_uf.cpp b/src/theory/uf/theory_uf.cpp index f0694462d..a3e347b90 100644 --- a/src/theory/uf/theory_uf.cpp +++ b/src/theory/uf/theory_uf.cpp @@ -488,6 +488,19 @@ void TheoryUF::computeCareGraph() { TNode x_shared = d_equalityEngine.getTriggerTermRepresentative(x); TNode y_shared = d_equalityEngine.getTriggerTermRepresentative(y); + EqualityStatus eqStatusDomain = d_valuation.getEqualityStatus(x_shared, y_shared); + switch (eqStatusDomain) { + case EQUALITY_FALSE_AND_PROPAGATED: + case EQUALITY_FALSE: + case EQUALITY_FALSE_IN_MODEL: + somePairIsDisequal = true; + continue; + break; + default: + break; + // nothing + } + // Otherwise, we need to figure it out Debug("uf::sharing") << "TheoryUf::computeCareGraph(): adding to care-graph" << std::endl; currentPairs.push_back(make_pair(x_shared, y_shared)); |