diff options
author | Clark Barrett <barrett@cs.stanford.edu> | 2017-06-15 17:11:22 -0700 |
---|---|---|
committer | Clark Barrett <barrett@cs.stanford.edu> | 2017-06-15 17:11:41 -0700 |
commit | 0335ae596244853ba35f7ae8c09caacdcf01f320 (patch) | |
tree | 7f2d5d4023d0641782368241151d05ebb1ba4250 /src/theory/arrays/theory_arrays.h | |
parent | 06b31fab6b9968ea1d6a58435cf210af5e6f540a (diff) |
Fix for bug 639.
Diffstat (limited to 'src/theory/arrays/theory_arrays.h')
-rw-r--r-- | src/theory/arrays/theory_arrays.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/theory/arrays/theory_arrays.h b/src/theory/arrays/theory_arrays.h index 574702368..48da4c681 100644 --- a/src/theory/arrays/theory_arrays.h +++ b/src/theory/arrays/theory_arrays.h @@ -309,7 +309,6 @@ class TheoryArrays : public Theory { Debug("arrays::propagate") << spaces(d_arrays.getSatContext()->getLevel()) << "NotifyClass::eqNotifyTriggerTermEquality(" << t1 << ", " << t2 << ", " << (value ? "true" : "false") << ")" << std::endl; if (value) { if (t1.getType().isArray()) { - d_arrays.mergeArrays(t1, t2); if (!d_arrays.isShared(t1) || !d_arrays.isShared(t2)) { return true; } @@ -334,7 +333,11 @@ class TheoryArrays : public Theory { void eqNotifyNewClass(TNode t) { } void eqNotifyPreMerge(TNode t1, TNode t2) { } - void eqNotifyPostMerge(TNode t1, TNode t2) { } + void eqNotifyPostMerge(TNode t1, TNode t2) { + if (t1.getType().isArray()) { + d_arrays.mergeArrays(t1, t2); + } + } void eqNotifyDisequal(TNode t1, TNode t2, TNode reason) { } }; |