Skip to content

Commit c415834

Browse files
author
BaierD
committed
Z3 visitor: reverse order of bound variables in the visitor, as they are instantiated reversed
1 parent 85ce8e0 commit c415834

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/org/sosy_lab/java_smt/solvers/z3/Z3FormulaCreator.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -588,8 +588,11 @@ private <R> R visitQuantifier(FormulaVisitor<R> pVisitor, BooleanFormula pFormul
588588
int numBound = Native.getQuantifierNumBound(environment, pF);
589589
long[] freeVars = new long[numBound];
590590
for (int i = 0; i < numBound; i++) {
591-
long varName = Native.getQuantifierBoundName(environment, pF, i);
592-
long varSort = Native.getQuantifierBoundSort(environment, pF, i);
591+
// The indices are reversed according to
592+
// https://github.com/Z3Prover/z3/issues/7970#issuecomment-3407924907
593+
int inverseIndex = numBound - 1 - i;
594+
long varName = Native.getQuantifierBoundName(environment, pF, inverseIndex);
595+
long varSort = Native.getQuantifierBoundSort(environment, pF, inverseIndex);
593596
long freeVar = Native.mkConst(environment, varName, varSort);
594597
Native.incRef(environment, freeVar);
595598
freeVars[i] = freeVar;

0 commit comments

Comments
 (0)