-
Notifications
You must be signed in to change notification settings - Fork 13
Add colibri2 support #57
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
Conversation
| let check s es = | ||
| add s es; | ||
| Scheduler.check_sat s.scheduler |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The way I encoded this using Z3 was for the expressions es to not be added to the solver. Because, IIRC Z3's check actually behaves like a check-sat-assuming with the argument es being the assumptions.
Do you think this will be problematic? We should probably add a label to es something like: Val check : solver -> assumptions:expr list to make this more clear
|
Btw, you don't need to support the optimization module. I just implemented it here to play with linear programming for an algorithms course project. But if I find time in the next few weeks, I'd probably like to give it a go. I'm interested in seeing the performance when compared with Z3's optimize (which was horrible for my use cases) |
ee4a48c to
7b6851a
Compare
8f0b784 to
939434c
Compare
939434c to
a900a02
Compare
|
@filipeom It seems that the CI can't install some of Colibri2's external dependencies on mac-os, so that's problematic :( I'll see what can be done about that |
I also can't install it locally on arch. Not even with the patch you linked 😔 What we can do is make |
|
Yes, I agree, that seems like a good solution for now. |
|
Got it. I'll also rebase my useless commits. Thanks a bunch for your help. I really appreciate it! And sorry again for any disruptions this afternoon. Won't happen again :) |
|
No worries at all :) |
With this PR, you'll be able to use Colibri2 instead of Z3 using the command line option
-p colibri2Support for optimization with ocplib_simplex (The simplex library used by both Colibri2 and Alt-Ergo) is incomplete, I'll take a better look at how to properly do it in another time (or someone else can if they're motivated)
Currently it's necessary to pin Colibri2 on the master branch in https://git.frama-c.com/pub/colibrics