// The may equal needs the store
d_mayEqualEqualityEngine.addTerm(store);
+ if (node.getType().isArray())
+ {
+ d_mayEqualEqualityEngine.addTerm(node);
+ d_equalityEngine.addTriggerTerm(node, THEORY_ARRAYS);
+ }
+ else
+ {
+ d_equalityEngine.addTerm(node);
+ }
+
if (options::arraysLazyRIntro1() && !options::arraysWeakEquivalence()) {
// Apply RIntro1 rule to any stores equal to store if not done already
const CTNodeList* stores = d_infoMap.getStores(store);
}
}
- if (node.getType().isArray()) {
- d_mayEqualEqualityEngine.addTerm(node);
- d_equalityEngine.addTriggerTerm(node, THEORY_ARRAYS);
- }
- else {
- d_equalityEngine.addTerm(node);
- }
-
Assert(d_equalityEngine.getRepresentative(store) == store);
d_infoMap.addIndex(store, node[1]);