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

Recent nightly runs out of memory on proof that used to work #1163

Closed
nano-o opened this issue Mar 26, 2021 · 8 comments
Closed

Recent nightly runs out of memory on proof that used to work #1163

nano-o opened this issue Mar 26, 2021 · 8 comments

Comments

@nano-o
Copy link
Contributor

nano-o commented Mar 26, 2021

The following proof in BLST works with the 3-11 nightly but runs out of memory with the 3-19 and 3-24 nightly releases.
https://github.com/GaloisInc/BLST-Verification/blob/d1ade9ac62e7e8bfa40cacbdaa37444f76ee3863/proof/hash_to_g1.saw#L219

@robdockins
Copy link
Contributor

Is the 3-11 nightly verified to be the last one that works, or is it just one that you happen to know works?

@nano-o
Copy link
Contributor Author

nano-o commented Mar 26, 2021

It's the last one that works.
Btw, to try it, it's best to uncomment all the commented-out statements at the beginning of hash_to_g1.saw and run SAW on this file.

@nano-o
Copy link
Contributor Author

nano-o commented Mar 26, 2021

I mean it's the last among those listed here: https://saw.galois.com/builds/nightly/ (there isn't one nitghtly per day there)

@robdockins
Copy link
Contributor

OK, I'll try to do some bisecting, see if we can figure out what's going on.

@robdockins
Copy link
Contributor

Bisecting indicates this is the first commit where the problem occurs: c95fa20

It's possible some of the rewrites removed by that commit were important for this particular proof, although I thought they all involved the now-removed eq primitive.

@robdockins
Copy link
Contributor

Turns out, the rewriting step that was removed in that patch included both the basic_ss as well as the rewrites related to eq. The particular proof step at issue here is easily solved if we add a simplify basic_ss proof step before dispatching to the solver; some combination of rewrites in there reduces some of these proof obligations to True and makes the proof run about the same as before.

It might be interesting to know why the proof task gives the What4 solver backend such problems without this rewrite, but for now the simple fix is to add another rewrite step, or maybe to incorporate the basic_ss into the fp_simpset that is already being used in that proof.

@nano-o
Copy link
Contributor Author

nano-o commented Mar 29, 2021

Okay, thanks for investigating!

@weaversa
Copy link
Contributor

weaversa commented Apr 6, 2021

@robdockins Just tagging that this may be related to #1166 .

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

No branches or pull requests

3 participants