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

SyGuS, match concrete size array #1178

Merged
merged 43 commits into from
May 14, 2024
Merged

SyGuS, match concrete size array #1178

merged 43 commits into from
May 14, 2024

Conversation

RyanGlScott
Copy link
Contributor

This is a consolidation of the changes in #1074 and #1166. This also bumps the what4 submodule to bring in the changes from GaloisInc/what4#256.

RyanGlScott added a commit to GaloisInc/saw-script that referenced this pull request Mar 1, 2024
This bumps:

* The `crucible` submodule to bring in the changes from
  GaloisInc/crucible#1178
* The `what4` submodule to bring in the changes from
  GaloisInc/what4#256
SimpleLoopFixpointCHC is not quite suitable for being a full replacement for
SimpleLoopFixpoint as of yet. For now, we will offer the CHC functionality in a
separate module, and we will restore the old SimpleLoopFixpoint functionality
in a subsequent commit.
@RyanGlScott RyanGlScott requested a review from kquick May 14, 2024 15:13
@RyanGlScott RyanGlScott marked this pull request as ready for review May 14, 2024 15:13
Copy link
Member

@kquick kquick left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple of small suggestions, but thanks for getting the ball across the line on this large set of changes!

@RyanGlScott RyanGlScott merged commit ac948b4 into master May 14, 2024
32 checks passed
@RyanGlScott RyanGlScott deleted the sygus-prep branch May 14, 2024 17:39
This was referenced May 14, 2024
RyanGlScott added a commit to GaloisInc/saw-script that referenced this pull request May 15, 2024
* Find SMT array write of a fixed size.

* Load SMT array with concrete size.

* Add test.

* Add noSatisfyingWriteFreshConstant option.

* Add invariant substitution to getPoststateObligations.

* Bump what4.

* wip

* wip

* Use simplified term in resolveSAWPred.

* Bump crucible.

* Remove unused sc.

* Use simplified term in resolveSAWPred.

* Bump crucible.

* Update src/SAWScript/Crucible/LLVM/Builtins.hs

Co-authored-by: Ryan Scott <rscott@galois.com>

* Fix -Wunused-matches warning

* Bump crucible, what4 submodules

This bumps:

* The `crucible` submodule to bring in the changes from
  GaloisInc/crucible#1178
* The `what4` submodule to bring in the changes from
  GaloisInc/what4#256

* Remove debugging-only code

* Bump cryptol-specs to incorporate GaloisInc/cryptol-specs#72

* Repair AES example to work with `type Nk = AES256`

* Add expert options for enabling What4-, Crucible-related SyGuS features

* Split off separate llvm_verify_fixpoint_chc_x86 command

* Only enable doPtrCmp optimizations with SimpleFixpointCHC

* crucible: Revert popFrame refactoring

* Uniformly apply pushMuxOps option to all ExprBuilders

SAW creates a variety of different ExprBuilders in the course of a typical SAW
script, but we were only applying the pushMuxOps option to some of them. This
patch makes the treatment a bit more comprehensive.

Unfortunately, doing so requires a rather uncomfortable amount of extra
plumbing in `SAWScript.Proof`, but I'm not sure how to do better without
refactoring all of `SAWScript.Proof` to use `TopLevel` instead of `IO` (and
it's unclear if that is desirable).

* Bump cryptol-specs, what4, crucible submodules to latest

* Bump what4, crucible submodules

* Adapt to recent crucible-llvm API changes

---------

Co-authored-by: Andrei Stefanescu <andrei@stefanescu.io>
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.

None yet

3 participants