Conversation
Yes, I think it definitively belongs to Smtml. Symbocalypse should only be used to generate datasets.
I think we need
It's probably fine as a first step! :)
Yes, and actually such function already exists (it is |
|
Hi! Thanks for the PR it looks amazing! 😃
Like push and pop? I think we could probably just do something similar to the
I think I'm ok with merging a preliminary version without all these features and add them later. I think the current PR is already a lot of progress 😃 |
…e the expressions
0fbb77b to
ae32635
Compare
ae32635 to
27a7775
Compare
I agree that something like that should work, I will look into it.
The PR is starting to get a bit too big as well, so I agree that we can merge a preliminary version and I'll add the other features later. Once I add |
|
The Nix CI failure is the same as the one in Owi, maybe someone more familiar with Nix/CIs has an idea of why its happening? |
|
It seems like a containerd bug which is specifically triggered by the nix image: EDIT: see also actions/runner-images#13682 |
filipeom
left a comment
There was a problem hiding this comment.
Thanks! The code looks great! 😃
|
Thanks! |
The purpose of the PR is to experiment with using machine learning models to try to select the best SMT solver for a given query.
A minimalist "smtzilla" solver was added which only does
check_satandget_model.Among the things I am planning to do:
We should think of how other functions of the API should be supported.
Currently the selection is only done between Z3 and Bitwuzla, but it should be easy to extend this such that it selects the best solver among those installed (and ignores the models of those that are not).
Currently the solver that is used for
get_modelis always the one that was last used for acheck_sat, but as we have seen in Owi, for a given query, the best solver to do acheck_satwith is not always the best solver to doget_modelwith, so two kinds of models are needed, one for when we just do acheck_sat, one for when it is followed by aget_model.check_sat_get_modelto know in advance, if we will need a model from a given query or not and to be able to measure both the time of thecheck_satand theget_modelfor that query.(The code used to train models will be added shortly to symbocalypse OCamlPro/symbocalypse#32, but I am thinking that maybe it has its place in smtml actually)