if (node.getType().isArray())
{
d_mayEqualEqualityEngine.addTerm(node);
- d_equalityEngine->addTriggerTerm(node, THEORY_ARRAYS);
+ d_equalityEngine->addTerm(node);
}
else
{
{
break;
}
- d_equalityEngine->addTriggerTerm(node, THEORY_ARRAYS);
+ d_equalityEngine->addTerm(node);
TNode a = d_equalityEngine->getRepresentative(node[0]);
d_infoMap.setConstArr(node, node);
d_mayEqualEqualityEngine.addTerm(node);
Assert(d_mayEqualEqualityEngine.getRepresentative(node) == node);
- d_equalityEngine->addTriggerTerm(node, THEORY_ARRAYS);
+ d_equalityEngine->addTerm(node);
d_defValues[node] = defaultValue;
break;
}
if (node.getType().isArray()) {
// The may equal needs the node
d_mayEqualEqualityEngine.addTerm(node);
- d_equalityEngine->addTriggerTerm(node, THEORY_ARRAYS);
+ d_equalityEngine->addTerm(node);
Assert(d_equalityEngine->getSize(node) == 1);
}
else {
{
Debug("arrays::propagate") << spaces(d_arrays.getSatContext()->getLevel()) << "NotifyClass::eqNotifyTriggerTermEquality(" << t1 << ", " << t2 << ", " << (value ? "true" : "false") << ")" << std::endl;
if (value) {
- if (t1.getType().isArray()) {
- if (!d_arrays.isShared(t1) || !d_arrays.isShared(t2)) {
- return true;
- }
- }
// Propagate equality between shared terms
return d_arrays.propagateLit(t1.eqNode(t2));
- } else {
- if (t1.getType().isArray()) {
- if (!d_arrays.isShared(t1) || !d_arrays.isShared(t2)) {
- return true;
- }
- }
- return d_arrays.propagateLit(t1.eqNode(t2).notNode());
}
- return true;
+ return d_arrays.propagateLit(t1.eqNode(t2).notNode());
}
void eqNotifyConstantTermMerge(TNode t1, TNode t2) override