Skip to content

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.
Co-authored-by: Alex Keizer <alex@keizer.dev>
…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.

2 participants