Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some solvers failing XstsTest #268

Open
RipplB opened this issue Jun 18, 2024 · 10 comments
Open

Some solvers failing XstsTest #268

RipplB opened this issue Jun 18, 2024 · 10 comments

Comments

@RipplB
Copy link
Contributor

RipplB commented Jun 18, 2024

XstsTest on the current master branch runs flawlessly with native legacy Z3 and smtinterpol:2.5-1256. However, the following table highlights issues with some of the available solvers:

Solver Failing tests Reason
JavaSMT:SMTINTERPOL 1,7,10,14,15,19,20,22,29,30,31,35,40,43,45,46,48,68, interpolation can only be done over previously asserted formulas.
JavaSMT:SMTINTERPOL 49,51, Identifier '+' can not be used, because it is a simple operator. Use FormulaManager#isValidName to check your identifier before using it.
JavaSMT:SMTINTERPOL 52,53,54,55,56,57,67, Initialized arrays are not supported.
JavaSMT:PRINCESS 1,7,10,13,14,15,16,18,19,20,22,29,30,31,35,40,43,45,46,48,68, interpolation can only be done over previously asserted formulas.
JavaSMT:PRINCESS 4, value already present: UF (And)
JavaSMT:PRINCESS 12,49,68, value already present: UF (GeqZero)
JavaSMT:PRINCESS 51, next on empty iterator
JavaSMT:PRINCESS 52,53,54,55,56,57,67, Initialized arrays are not supported.
cvc5:1.0.8 1,3,4,5,10,16,17,18,19,20,21,22,23,24,25,35,42, No response in iteration 1
cvc5:1.0.8 13,14,15,45,51,54,70, Possibly cant solve - stopped manually
cvc5:1.0.8 69, Could not parse solver output: (error "Array theory solver does not yet support write-chains connecting two different constant arrays")
mathsat:5.6.10 52, Possibly cant solve - stopped manually
mathsat:5.6.10 55,56,57,58,59,60, Arrays with Bool as argument are not supported
princess:2023-06-19 7,10,13,14,15,22,38,43,46,48,49,51,56,61,71, Indexing mismatch on declaration
z3:4.12.2 1,4,72, Infinite loop
z3:4.12.2 13,14,15,22,43,52,53, Possibly cant solve - stopped manually

Please note the following:

  • "Infinite loop" and "Possibly cant solve" issues might be the same
  • Testing cvc5 required removing a lot of tests, so the larger numbers might be misaligned
  • Some of these might be known limitations of the solver, but I collected every fail
@mondokm
Copy link
Contributor

mondokm commented Jun 19, 2024

To the Could not parse solver output: (error "Array theory solver does not yet support write-chains connecting two different constant arrays") error of cvc5:1.0.8: cvc5/cvc5#3065
We should try with a newer version of cvc5

@mondokm
Copy link
Contributor

mondokm commented Jun 19, 2024

cvc5:1.0.8: A dummy assertion has to be added to A in case of interpolation

@szdan97
Copy link
Contributor

szdan97 commented Jun 19, 2024

cvc5:1.0.8: A dummy assertion has to be added to A in case of interpolation

1.1.0 and 1.1.2 did not return any interpolant for the same simple example either, so a dummy assertion is most likely needed for newer versions as well

@mondokm
Copy link
Contributor

mondokm commented Jun 19, 2024

mathsat:5.6.10: Arrays with bools as key or value type are simply not supported.

(declare-fun _arr$0_0 () (Array Int Bool))
(error "Arrays with Bool as argument are not supported")

@mondokm
Copy link
Contributor

mondokm commented Jun 20, 2024

cvc5 1.1.0 and 1.0.9: It seems that pop does not remove declare-fun-s. The following doesn't work with 1.0.9 and 1.1.0, but works with newer or older versions:

(set-option :produce-models true)
(set-logic ALL)
(set-option :print-success true)
(push 1)
(declare-fun _x$0_0 () Int)
(assert (= _x$0_0 0))
(check-sat)
(pop 1)
(push 1)
(declare-fun _x$0_0 () Int)
(error "Cannot bind _x$0_0 to symbol of type Int, maybe the symbol has already been defined?")

cvc5:1.1.1+: The installer had to be modified to unzip the binary.

@mondokm
Copy link
Contributor

mondokm commented Jun 24, 2024

SmtLibSolverTest and SmtLibItpSolverTest work on Windows (after removing the OS assertions). The uninstall after the tests fails because it lacks permissions to delete the installed solver.

@mondokm
Copy link
Contributor

mondokm commented Jun 24, 2024

princess:2023-06-19: the HashMap had to be replaced with an IdentityHashMap, like in the case of SmtInterpol.

@leventeBajczi
Copy link
Contributor

@RipplB: interpolation was fixed in 49de2559. I cannot reproduce the bug with either SMTINTERPOL or PRINCESS.

@leventeBajczi
Copy link
Contributor

However, the underlying issue is documented in sosy-lab/java-smt#381, when it gets solved, we should remove our workaround.

@leventeBajczi
Copy link
Contributor

for the rest of the table, I strongly think the proposed soution to #270 is what we're after here as well. After you fix that issue, please re-test XstsTest with the different solvers again, and update the table so we can resume debugging!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants