Skip to content

Add bindings to the user propagator #344

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

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

puyral
Copy link

@puyral puyral commented Apr 8, 2025

This adds bindings and an API for the user propagator and the on_clause callback.

I would consider this still experimental, as I'm not fully sure of what z3 might do with my objects (e.g., weird lifetimes and thread safety).

This also closes #343

puyral added 7 commits April 4, 2025 09:29
ignores Macos' DS_Store and some `nix` related files
Not tested yet, so there are probably many typos around still
many things are not ready yet, notably I'm not sure of the lifetimes of
things. I skipped fresh entirely
Some things can likely still be improved, but this is a good
initial implementation
This way there is no need for handles, it also makes it easier to add
the `on_clause` API
@puyral
Copy link
Author

puyral commented Apr 8, 2025

So apparently Ubuntu ships with a version of z3 that is too old for the user propagator...

The previous version half assumed there was no multithreading (no
requierement for Sync), half assumed there was (it was using `ref`
everywhere). This commit fully goes for the no multithreading version.
- &mut where it makes sense
- the UPSolver now owns the UserPropagators, to prevent potential
  aliasings
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

Successfully merging this pull request may close these issues.

Retrieve non-unsat proof attempts via on_clause callback
1 participant