Skip to content
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

feat: Switch to using bv_decide to decide memory goals instead of bv_omega #197

Draft
wants to merge 68 commits into
base: main
Choose a base branch
from

Conversation

bollu
Copy link
Collaborator

@bollu bollu commented Sep 26, 2024

Description:

In facing scaling issues with omega, we've taken a step back, and are considering using a SAT solver via bv_omega to discharge our memory goals. This branch will try an experiment, where we will replace the core definitions of mem_legal', mem_subset', mem_separate' to be SAT solver friendly, and will rewrite the surrounding tactics to use these theorems instead.

Testing:

What tests have been run? Did make all succeed for your changes? Was
conformance testing successful on an Aarch64 machine?

License:

By submitting this pull request, I confirm that my contribution is
made under the terms of the Apache 2.0 license.

bollu and others added 21 commits September 26, 2024 10:12
This simproc simplifies expressions by attempting to constant fold using `omega`
to make sure we never see modulos, and moves all arithmetic constants to the left.

The goal is for this to be upstreamed sooner rather than later.
…c on nats

I'm considering switching the `n` in `mem_legal' a n` to a `BitVec 64`, but
it maybe possible to write preprocessing to write the proof state purely
in terms of bitvectors; Let's first get enough to try to push `memcpy`
proof through.
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.

1 participant