Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
I
Iris
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 116
    • Issues 116
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 20
    • Merge Requests 20
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Iris
  • Iris
  • Merge Requests
  • !270

Merged
Opened Jun 14, 2019 by Ralf Jung@jungOwner

comparison: treat prophecies like unit and make all closures equal

  • Overview 17
  • Commits 3
  • Changes 6

As @amintimany noted, currently erasure actually does not hold (so much for obvious^^) because the program could compare two prophecy variables to figure out if they are equal -- so after replacing them all by unit, the result changes.

To fix this, we make comparison use a "normalization" function to replace all prophecies by unit before comparing. Amongst the options I considered, I think this is the least intrusive. The alternative is to get stuck if either of the compared values contains a prophecy, but that does not usually compute away as nicely as this normalization function.

While at it, this "normalization" function is also used to fix the problem that in heap_lang you can compare closures: normalization replaces all closures by a fixed one (fun _ => ()), this making all closures the same but distinct from anything else.

Edited Jun 18, 2019 by Ralf Jung
Assignee
Assign to
Reviewer
Request review from
None
Milestone
None
Assign milestone
Time tracking
Reference: iris/iris!270
Source branch: ralf/eq

Revert this merge request

This will create a new commit in order to revert the existing changes.

Switch branch
Cancel
A new branch will be created in your fork and a new merge request will be started.

Cherry-pick this merge request

Switch branch
Cancel
A new branch will be created in your fork and a new merge request will be started.