Skip to content

Commit 882dda4

Browse files
authored
Merge pull request #449 from sosy-lab/remove_boolector_quantifiers_standalone
Remove boolector quantifiers standalone
2 parents ae91878 + 55ac1e8 commit 882dda4

File tree

4 files changed

+4
-125
lines changed

4 files changed

+4
-125
lines changed

src/org/sosy_lab/java_smt/solvers/boolector/BoolectorFormulaManager.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ final class BoolectorFormulaManager extends AbstractFormulaManager<Long, Long, L
1818
BoolectorUFManager pFunctionManager,
1919
BoolectorBooleanFormulaManager pBooleanManager,
2020
BoolectorBitvectorFormulaManager pBitvectorManager,
21-
BoolectorQuantifiedFormulaManager pQuantifierManager,
2221
BoolectorArrayFormulaManager pArrayManager) {
2322
super(
2423
pFormulaCreator,
@@ -28,7 +27,7 @@ final class BoolectorFormulaManager extends AbstractFormulaManager<Long, Long, L
2827
null,
2928
pBitvectorManager,
3029
null,
31-
pQuantifierManager,
30+
null,
3231
pArrayManager,
3332
null,
3433
null,

src/org/sosy_lab/java_smt/solvers/boolector/BoolectorQuantifiedFormulaManager.java

-84
This file was deleted.

src/org/sosy_lab/java_smt/solvers/boolector/BoolectorSolverContext.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -94,12 +94,10 @@ public static BoolectorSolverContext create(
9494
BoolectorBooleanFormulaManager booleanTheory = new BoolectorBooleanFormulaManager(creator);
9595
BoolectorBitvectorFormulaManager bitvectorTheory =
9696
new BoolectorBitvectorFormulaManager(creator, booleanTheory);
97-
BoolectorQuantifiedFormulaManager quantifierTheory =
98-
new BoolectorQuantifiedFormulaManager(creator);
9997
BoolectorArrayFormulaManager arrayTheory = new BoolectorArrayFormulaManager(creator);
10098
BoolectorFormulaManager manager =
10199
new BoolectorFormulaManager(
102-
creator, functionTheory, booleanTheory, bitvectorTheory, quantifierTheory, arrayTheory);
100+
creator, functionTheory, booleanTheory, bitvectorTheory, arrayTheory);
103101
return new BoolectorSolverContext(manager, creator, pShutdownNotifier);
104102
}
105103

src/org/sosy_lab/java_smt/test/QuantifierManagerTest.java

+2-36
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,6 @@ public void setUpBV() {
8585
requireBitvectors();
8686
requireArrays();
8787
requireQuantifiers();
88-
assume()
89-
.withMessage("Solver %s does not support quantifiers via JavaSMT", solverToUse())
90-
.that(solverToUse())
91-
.isNotEqualTo(Solvers.BOOLECTOR);
9288

9389
xbv = bvmgr.makeVariable(bvWidth, "xbv");
9490
bvArray =
@@ -143,8 +139,6 @@ public void testBVForallArrayConjunctUnsat() throws SolverException, Interrupted
143139
requireBitvectors();
144140
// Princess does not support bitvectors in arrays
145141
assume().that(solverToUse()).isNotEqualTo(Solvers.PRINCESS);
146-
// Boolector quants need to be reworked
147-
assume().that(solverToUse()).isNotEqualTo(Solvers.BOOLECTOR);
148142

149143
BooleanFormula f =
150144
bmgr.and(
@@ -188,8 +182,6 @@ public void testBVForallArrayConjunctSat() throws SolverException, InterruptedEx
188182
requireBitvectors();
189183
// Princess does not support bitvectors in arrays
190184
assume().that(solverToUse()).isNotEqualTo(Solvers.PRINCESS);
191-
// Boolector quants need to be reworked
192-
assume().that(solverToUse()).isNotEqualTo(Solvers.BOOLECTOR);
193185

194186
BooleanFormula f =
195187
bmgr.and(
@@ -364,8 +356,6 @@ public void testBVExistsArrayConjunct1() throws SolverException, InterruptedExce
364356
requireBitvectors();
365357
// Princess does not support bitvectors in arrays
366358
assume().that(solverToUse()).isNotEqualTo(Solvers.PRINCESS);
367-
// Boolector quants need to be reworked
368-
assume().that(solverToUse()).isNotEqualTo(Solvers.BOOLECTOR);
369359

370360
BooleanFormula f =
371361
bmgr.and(
@@ -402,8 +392,6 @@ public void testBVExistsArrayConjunct2() throws SolverException, InterruptedExce
402392
requireBitvectors();
403393
// Princess does not support bitvectors in arrays
404394
assume().that(solverToUse()).isNotEqualTo(Solvers.PRINCESS);
405-
// Boolector quants need to be reworked
406-
assume().that(solverToUse()).isNotEqualTo(Solvers.BOOLECTOR);
407395

408396
BooleanFormula f =
409397
bmgr.and(qmgr.exists(ImmutableList.of(xbv), bvArray_at_x_eq_1), bv_forall_x_a_at_x_eq_0);
@@ -435,11 +423,10 @@ public void testBVExistsArrayConjunct3() throws SolverException, InterruptedExce
435423
// (exists x . b[x] = 0) AND (forall x . b[x] = 0) is SAT
436424
requireBitvectors();
437425
// Princess does not support bitvectors in arrays
438-
// Boolector quants need to be reworked
439426
assume()
440427
.withMessage("Solver %s does not support the complete theory of quantifiers", solverToUse())
441428
.that(solverToUse())
442-
.isNoneOf(Solvers.CVC5, Solvers.CVC4, Solvers.BOOLECTOR);
429+
.isNoneOf(Solvers.CVC5, Solvers.CVC4);
443430

444431
BooleanFormula f =
445432
bmgr.and(qmgr.exists(ImmutableList.of(xbv), bvArray_at_x_eq_0), bv_forall_x_a_at_x_eq_0);
@@ -474,8 +461,6 @@ public void testBVExistsArrayDisjunct1() throws SolverException, InterruptedExce
474461
requireBitvectors();
475462
// Princess does not support bitvectors in arrays
476463
assume().that(solverToUse()).isNotEqualTo(Solvers.PRINCESS);
477-
// Boolector quants need to be reworked
478-
assume().that(solverToUse()).isNotEqualTo(Solvers.BOOLECTOR);
479464

480465
BooleanFormula f =
481466
bmgr.or(
@@ -502,8 +487,6 @@ public void testBVExistsArrayDisjunct2() throws SolverException, InterruptedExce
502487
requireBitvectors();
503488
// Princess does not support bitvectors in arrays
504489
assume().that(solverToUse()).isNotEqualTo(Solvers.PRINCESS);
505-
// Boolector quants need to be reworked
506-
assume().that(solverToUse()).isNotEqualTo(Solvers.BOOLECTOR);
507490

508491
BooleanFormula f =
509492
bmgr.or(
@@ -526,8 +509,6 @@ public void testLIAContradiction() throws SolverException, InterruptedException
526509
public void testBVContradiction() throws SolverException, InterruptedException {
527510
// forall x . x = x+1 is UNSAT
528511
requireBitvectors();
529-
// Boolector quants need to be reworked
530-
assume().that(solverToUse()).isNotEqualTo(Solvers.BOOLECTOR);
531512

532513
int width = 16;
533514
BitvectorFormula z = bvmgr.makeVariable(width, "z");
@@ -555,8 +536,6 @@ public void testLIASimple() throws SolverException, InterruptedException {
555536
public void testBVSimple() throws SolverException, InterruptedException {
556537
// forall z . z+2 = z+1+1 is SAT
557538
requireBitvectors();
558-
// Boolector quants need to be reworked
559-
assume().that(solverToUse()).isNotEqualTo(Solvers.BOOLECTOR);
560539

561540
int width = 16;
562541
BitvectorFormula z = bvmgr.makeVariable(width, "z");
@@ -585,8 +564,6 @@ public void testLIAEquality() throws SolverException, InterruptedException {
585564
@Test
586565
public void testBVEquality() throws SolverException, InterruptedException {
587566
requireBitvectors();
588-
// Boolector quants need to be reworked
589-
assume().that(solverToUse()).isNotEqualTo(Solvers.BOOLECTOR);
590567

591568
BitvectorFormula z = bvmgr.makeVariable(bvWidth, "z");
592569
BitvectorFormula y = bvmgr.makeVariable(bvWidth, "y");
@@ -598,8 +575,6 @@ public void testBVEquality() throws SolverException, InterruptedException {
598575
@Test
599576
public void testBVEquality2() throws SolverException, InterruptedException {
600577
requireBitvectors();
601-
// Boolector quants need to be reworked
602-
assume().that(solverToUse()).isNotEqualTo(Solvers.BOOLECTOR);
603578

604579
BitvectorFormula z = bvmgr.makeVariable(bvWidth, "z");
605580
BitvectorFormula y = bvmgr.makeVariable(bvWidth, "y");
@@ -612,8 +587,6 @@ public void testBVEquality3() throws SolverException, InterruptedException {
612587
// exists z . (forall y . z = y && z + 2 > z)
613588
// UNSAT because of bv behaviour
614589
requireBitvectors();
615-
// Boolector quants need to be reworked
616-
assume().that(solverToUse()).isNotEqualTo(Solvers.BOOLECTOR);
617590

618591
BitvectorFormula z = bvmgr.makeVariable(bvWidth, "z");
619592
BitvectorFormula zPlusTwo =
@@ -644,8 +617,6 @@ public void testLIABoundVariables() throws SolverException, InterruptedException
644617
public void testBVBoundVariables() throws SolverException, InterruptedException {
645618
// If the free and bound vars are equal, this will be UNSAT
646619
requireBitvectors();
647-
// Boolector quants need to be reworked
648-
assume().that(solverToUse()).isNotEqualTo(Solvers.BOOLECTOR);
649620

650621
int width = 2;
651622
BitvectorFormula aa = bvmgr.makeVariable(width, "aa");
@@ -803,12 +774,11 @@ public void checkBVQuantifierEliminationFail() throws InterruptedException, Solv
803774
// build formula: (exists x : arr[x] = 3) && (forall y: arr[y] = 2)
804775
// as there is no quantifier free equivalent, it should return the input formula.
805776
requireBitvectors();
806-
// Boolector quants need to be reworked
807777
// Princess does not support bitvectors in arrays
808778
assume()
809779
.withMessage("Solver %s does not support the complete theory of quantifiers", solverToUse())
810780
.that(solverToUse())
811-
.isNoneOf(Solvers.CVC5, Solvers.BOOLECTOR, Solvers.PRINCESS);
781+
.isNoneOf(Solvers.CVC5, Solvers.PRINCESS);
812782

813783
int width = 2;
814784
BitvectorFormula xx = bvmgr.makeVariable(width, "x_bv");
@@ -836,8 +806,6 @@ public void checkBVQuantifierElimination() throws InterruptedException, SolverEx
836806
// quantifier-free equivalent: x = 1 | x = 3
837807
// or extract_0_0 x = 1
838808

839-
// Boolector quants need to be reworked
840-
assume().that(solverToUse()).isNotEqualTo(Solvers.BOOLECTOR);
841809
int i = index.getFreshId();
842810
int width = 2;
843811

@@ -862,8 +830,6 @@ public void checkBVQuantifierElimination2() throws InterruptedException, SolverE
862830
// quantifier-free equivalent: (and (= b2 #x00000006)
863831
// (= a3 #x00000000))
864832

865-
// Boolector quants need to be reworked
866-
assume().that(solverToUse()).isNotEqualTo(Solvers.BOOLECTOR);
867833
// Z3 fails this currently. Remove once thats not longer the case!
868834
assume().that(solverToUse()).isNotEqualTo(Solvers.Z3);
869835
int width = 32;

0 commit comments

Comments
 (0)