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

General data type for recursive permissions #74

Open
6 of 16 tasks
m-yac opened this issue Feb 18, 2021 · 0 comments
Open
6 of 16 tasks

General data type for recursive permissions #74

m-yac opened this issue Feb 18, 2021 · 0 comments
Assignees

Comments

@m-yac
Copy link
Contributor

m-yac commented Feb 18, 2021

Instead of having to write a SAW core data type and fold/unfold functions for each recursive permission one wants to define, we should have a single data type (IRT for iso-recursive type) which encapsulates everything we need. Then, to define a recursive permission we would just need to provide the Heapster types. Eventually, this would be the only way to define such a permission.

  • Define RPTs in Coq
    • Finish defining RPTDesc with variables, then define interpretation, substitution, and RPTElem
    • Write unfoldRPT, foldRPT and a proof (with Admitteds) that they form an isomorphism
    • (Eventually) Figure out a nice way to write recursors / induction principles
  • Define IRTs in SAWCore
  • In Coq, prove unfoldIRT and foldIRT are inverses
  • Integrate with Heapster
    • Add a command to saw-script which defines recursive permissions using IRTs
    • Add IRTs to the proof automation
    • Add some simple examples of using this command (and writing proofs about the output) to heapster-saw
    • Add a command to saw-script which defines reachability permissions using IRTs
    • Add some examples of using the above
  • Convert old examples to use IRTs
    • Remove the concept of recursive permissions from the implication checker in favor of IRTs
    • Remove the manual datatypes and fold/unfold functions from old examples and replace the old recursive/reachbility permission commands with the new ones
    • Remove the proof automation for the old datatypes
@m-yac m-yac self-assigned this Feb 18, 2021
m-yac added a commit to GaloisInc/saw-core that referenced this issue Feb 25, 2021
m-yac added a commit to GaloisInc/saw-core that referenced this issue Feb 25, 2021
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

1 participant