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

Address Heapster Implication Prover Bug (Word Equality) #1512

Merged
merged 1 commit into from
Nov 15, 2021

Conversation

ChrisEPhifer
Copy link
Member

Previously, the function implLLVMFieldTryProveWordEq had a case like this:

  _ ->
    implDropM y p >>> implLLVMFieldSetTrue x (llvmFieldSetEqVar fp y) >>>
    return Nothing

The pattern-match here is on the permission left on top of the stack by an elimination as performed by elimOrsExistsNamesM; in the above version, this is being ignored, and the previous permission p is propagated to implDropM.

This is incorrect, as elimOrsExistsNamesM can, of course, perform an elimination and change the permission at the top of the stack. Fortunately, the correction is trivial:

  p' ->
    implDropM y p' >>> implLLVMFieldSetTrue x (llvmFieldSetEqVar fp y) >>>
    return Nothing

Thank you to @eddywestbrook for catching this!

@ChrisEPhifer ChrisEPhifer added bug Heapster Issues specifically related to the Heapster sub-system labels Nov 15, 2021
@ChrisEPhifer ChrisEPhifer self-assigned this Nov 15, 2021
Copy link
Contributor

@eddywestbrook eddywestbrook left a comment

Choose a reason for hiding this comment

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

I'm Eddy Westbrook, and I approve this change

@eddywestbrook eddywestbrook added ready-to-merge If at least one person approves this PR, automatically merge it when CI finishes successfully. and removed ready-to-merge If at least one person approves this PR, automatically merge it when CI finishes successfully. labels Nov 15, 2021
@mergify mergify bot merged commit 0e69e18 into master Nov 15, 2021
@mergify mergify bot deleted the heapster/fix-impl-word-eq-prover branch November 15, 2021 19:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Heapster Issues specifically related to the Heapster sub-system ready-to-merge If at least one person approves this PR, automatically merge it when CI finishes successfully.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants