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

Fix Heapster reachability permissions examples #2030

Merged
merged 6 commits into from
Feb 21, 2024

Conversation

eddywestbrook
Copy link
Contributor

As noted in #2027, the Heapster examples that were using reachability permissions were creating SAW core type errors in the translation to SAW core. Turns out there were not actually anything wrong with reachability permissions, just a bug in the sigmaElimTransM function used by the Heapster-to-SAW translation to translate the elimination of existential permissions. This PR fixes that bug and re-enables the Heapster examples that use reachability permissions.

@eddywestbrook eddywestbrook added the subsystem: heapster Issues specifically related to memory verification using Heapster label Feb 16, 2024
@@ -3,6 +3,22 @@ module iter_linked_list where

import SpecM;

-- Type description for the Mbox type, which is equivalent to Mbox_Ind
Copy link
Contributor

Choose a reason for hiding this comment

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

Should this say List/List_Ind instead of Mbox/Mbox_Ind?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Actually, the comment needed to be slightly different, but I fixed it, thanks!

Mbox_nil : Mbox;
Mbox_cons : Vec 64 Bool -> Vec 64 Bool -> Mbox -> BVVec 64 bv64_128 (Vec 8 Bool) -> Mbox;
-- An inductive type formulation of the Mbox type; this is just for
-- documentation purposes, and isn't used in the below
Copy link
Contributor

Choose a reason for hiding this comment

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

I think this accidentally a word:

Suggested change
-- documentation purposes, and isn't used in the below
-- documentation purposes, and isn't used in the code below

Copy link
Contributor Author

Choose a reason for hiding this comment

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

"In the below" is a phase often used in papers as a synonym for "in the following"


primitive appendList : (T:TpDesc) -> ListTpF T -> ListTpF T -> ListTpF T;

{-
Copy link
Contributor

Choose a reason for hiding this comment

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

Should this chunk of commented-out code include a FIXME similar to the one in the commented-out data Mbox code in mbox.sawcore?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yep, I'll add that

@eddywestbrook eddywestbrook added the PR: ready to merge Magic flag for pull requests to ask Mergify to merge given an approval and a successful CI run label Feb 21, 2024
@mergify mergify bot merged commit 392e3ca into master Feb 21, 2024
37 checks passed
@mergify mergify bot deleted the heapster/fix-reach-perms branch February 21, 2024 04:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PR: ready to merge Magic flag for pull requests to ask Mergify to merge given an approval and a successful CI run subsystem: heapster Issues specifically related to memory verification using Heapster
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants