Skip to content

Commit d3bfa5f

Browse files
committed
Add more information about CVC4s and CVC5s quantifiers
1 parent 0ecc5e4 commit d3bfa5f

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

src/org/sosy_lab/java_smt/solvers/cvc4/CVC4QuantifiedFormulaManager.java

+13-2
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,19 @@ protected CVC4QuantifiedFormulaManager(
3232
}
3333

3434
/*
35-
* (non-Javadoc) CVC4 supports this for LIA and LRA only. If it fails, we return the input. If you
36-
* try this on array theories, it will most likely run indefinetly.
35+
* (non-Javadoc) CVC4s quantifier support is dependent on the options used.
36+
* Without any options it tends to run infenitly on many theories or examples.
37+
* There are 2 options improving this: full-saturate-quant and sygus-inst.
38+
* full-saturate-quant is activated in JavaSMT per default.
39+
* You can try combinations of them, or just one if a query is not solveable.
40+
* More info on full-saturate-quant: Enables "enumerative instantiation",
41+
* see: https://homepage.divms.uiowa.edu/~ajreynol/tacas18.pdf
42+
* More info on sygus-inst: Enables syntax-guided instantiation,
43+
* see https://homepage.divms.uiowa.edu/~ajreynol/tacas21.pdf
44+
* This approach tends to work well when the quantified formula involves
45+
* theories (e.g. strings) where more traditional quantifier instantiation
46+
* heuristics do not apply.
47+
* This applies to CVC4 and CVC5!
3748
*/
3849
@Override
3950
protected Expr eliminateQuantifiers(Expr pExtractInfo)

src/org/sosy_lab/java_smt/solvers/cvc4/CVC4TheoremProver.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,8 @@ private void setOptions(int randomSeed, Set<ProverOptions> pOptions) {
9898
smtEngine.setOption("random-seed", new SExpr(randomSeed));
9999
// Set Strings option to enable all String features (such as lessOrEquals)
100100
smtEngine.setOption("strings-exp", new SExpr(true));
101-
// Enable more complete quantifier solving
101+
// Enable more complete quantifier solving (for more information see
102+
// CVC4QuantifiedFormulaManager)
102103
smtEngine.setOption("full-saturate-quant", new SExpr(true));
103104
}
104105

0 commit comments

Comments
 (0)