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

Inv subst #2018

Closed
wants to merge 9 commits into from
Closed

Inv subst #2018

wants to merge 9 commits into from

Conversation

andreistefanescu
Copy link
Contributor

@andreistefanescu andreistefanescu commented Jan 24, 2024

fixes #1910

src/SAWScript/Crucible/LLVM/Builtins.hs Outdated Show resolved Hide resolved
Comment on lines 1699 to 1700
-- message, the metadata, and the SAWCore. For each proof obligation, substitute
-- the uninterpreted invaiants with their definitions.
Copy link
Contributor

Choose a reason for hiding this comment

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

If I understand correctly, this invariant substitution is always empty for now, but after the changes in #2016, then loop invariant inference will produce a non-empty invariant substitution to apply. Is that correct? If so, it would be worth updating this comment to explicitly state where the invariant substitution comes from (perhaps in #2016).

Copy link
Member

Choose a reason for hiding this comment

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

Yes, this is split out from 2016 to supply the plumbing that will actually be utilized in 2016.

@andreistefanescu
Copy link
Contributor Author

@RyanGlScott as it turns out, you get a parting gift from me: fixing the CI here. I think this fails because of the simplification changes in What4. I assume fixing this this requires some tinkering with the existing rewrite rules. This need to be fixed regardless of the other open pull requests, as it prevents any further updates to the What4 submodule.

@RyanGlScott
Copy link
Contributor

Indeed, I also suspect that the what4 simplification rules introduced in GaloisInc/what4#252 are responsible for the awslc CI job going into a (seemingly) infinite loop. Most likely, the proof goals now consist of different terms, which causes key rewrite rules not to fire. (See also GaloisInc/crucible#1165, where bumping the what4 submodule on the crucible side caused a What4 term in a test case to take on a very different shape.)

Judging from the failing CI job:

[21:06:03.395] Checking proof obligations EVP_DigestUpdate ...
Error: The operation was canceled.

The infinite loop occurs somewhere in the proof of EVP_DigestUpdate.

@RyanGlScott RyanGlScott marked this pull request as draft March 1, 2024 16:44
@RyanGlScott
Copy link
Contributor

Superseded by #2037.

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.

Suspicious code in LLVM.ResolveSetupValue.resolveSAWPred
3 participants