Skip to content

Commit 8aeaa19

Browse files
authored
Fix issue with ee-mode central with arrays (cvc5#11898)
The array theory requires explicitly being notified about disequalities between arrays. When ee-mode=central, we did not configure arrays to request these notifications. Fixes cvc5#11889.
1 parent d657007 commit 8aeaa19

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

src/theory/theory.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -641,7 +641,7 @@ eq::EqualityEngine* Theory::getEqualityEngine()
641641

642642
bool Theory::expUsingCentralEqualityEngine(TheoryId id)
643643
{
644-
return id != THEORY_ARITH;
644+
return id != THEORY_ARITH && id != THEORY_ARRAYS;
645645
}
646646

647647
theory::Assertion Theory::get()

test/regress/cli/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ set(regress_0_tests
163163
regress0/arrays/issue9043_4.smt2
164164
regress0/arrays/issue10494.smt2
165165
regress0/arrays/issue10494-2.smt2
166+
regress0/arrays/issue11889-eec-unsat.smt2
166167
regress0/arrays/proj-issue322-has-term.smt2
167168
regress0/arrays/proj-issue391-minisat-elim.smt2
168169
regress0/arrays/proj-issue467-cm.smt2
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
; COMMAND-LINE: --ee-mode=central
2+
; EXPECT: unsat
3+
(set-logic QF_AUFLIA)
4+
(declare-fun a () (Array Int Int))
5+
(declare-fun x () Int)
6+
(declare-fun y () Int)
7+
(declare-fun g ((Array Int Int)) Int)
8+
(declare-fun f (Int) Int)
9+
(assert (and (distinct (f x) (f y)) (= (store a y 0) (store a x 0)) (distinct (g a) (g (store a y 0)))))
10+
(check-sat)

0 commit comments

Comments
 (0)