Add a solver module to create solvers with the smtml mappings #149
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Here's the thing I promised before going on my internship 🙈
In this implementation, we don't use any of the smtml values. We only use the thin parametric layer that allows us to connect to the various solvers. This should be as fast as using the bindings directly.
Currently, it's only expected to work with Z3, as I don't have the mappings to ADTs implemented in Alt-Ergo or CVC5.
There are still a couple of things to do. There are some
assert falses in the code, but I think I should be able to do those with the API smtml currently has. This shouldn't be a problem.I still want to connect it to the cli, which should be easy as smtml has helpers for
cmdlinerinSmtml.Solver_typeandSmtml.Solver_dispatcher.Also, it's currently pinned to a development version of smtml because I just added mappings to the ADTs. This should be included in our next Monday release.
I won't promise to complete this in the next week, to avoid falling into the trap I did previously, but I'm opening the PR to show you it's almost done and also to gather feedback. I'm not expecting you to adopt smtml just because I really want you to, but I hope that once it's finished and I benchmark it, you'll find some value in it.
We're going to be adding more bindings for other solvers in the future, but this may take some time as we currently don't have anyone working exclusively on smtml.