Replies: 3 comments
-
I am not sure about the best architectural solution here. General question:
The intermediate layer is unclear:
Possible alternative:
|
Beta Was this translation helpful? Give feedback.
-
I agree that a solution is not obvious here. I'd say that all solvers should be able to utilize external quantifier/quantifier elimination, as Ultimate Eliminator seems to yield better results for quantifier elimination in solvers that support it natively in many cases. While we are at it, since our group tried several quantifier based strategies lately, we should add the possibility for users to choose options in the The interface of UE is mainly SMT2 files/text. It has a wrapper that allows input via command line, which is really just the same. The components of the wrapper seem to use SMTInterpol by the way! (can be found in the Ultimate repo here.) We should definitively get in contact with Matthias Heizmann, as he seems to be the maintainer, and they state that they are not decided on an interface yet and are open for suggestions. |
Beta Was this translation helpful? Give feedback.
-
Currently, JavaSMT does not use any process-based external tools, but inlcudes them via direct API calls (like JNI). Having UE using SMTInterpol can be a benefit for having a known API. However, it also has the issue of packaging SMTInterpol (or its core libraries) as a dependency, because the Ultimate team did until now not manage to separate their own dependencies in a usable way (see their mono-repository at https://github.com/ultimate-pa/ultimate/tree/dev/trunk/source or just ask the CPAchecker developers about LassoRanker conflicting with SMTInterpol in CPAchecker). |
Beta Was this translation helpful? Give feedback.
-
Ultimate Eliminator is a solver independent quantifier eliminator. By adding it, we could offer (limited) quantifier support for quantifier free solvers, e.h. MathSAT5.
However, we need a layer in JavaSMT that allows us to manipulate the formulas before eliminating the quantifier and then translating the formulas to the final solver. Since Ultimate Eliminator is based in Java, adding should be simple. One possibility of a caching layer would be using Princess, as it supports quantifiers and is always available.
@kfriedberger thoughts?
Beta Was this translation helpful? Give feedback.
All reactions