Skip to content
Snippets Groups Projects

Generalize Propers for lists / Add some missing Params

Merged Robbert Krebbers requested to merge robbert/list_proper into master
All threads resolved!

For example, for fmap:

  • Old: Proper ((≡) ==> (≡)) f → Proper ((≡) ==> (≡)) (fmap f)
  • New: Proper (((≡) ==> (≡)) ==> (≡@{list A}) ==> (≡@{list B})) fmap

This means that solve_proper can also find a Proper instance when the two functions are different, and then prove that they are extensionally equal.

This is similar to what we have done in !276 (merged) for maps.

Edited by Ralf Jung

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • I can't see anything obviously wrong this this MR. I also don't know our existing Proper instances for these things so I cannot tell if any of the new instances is (partially) redundant -- I trust you checked that.

  • Robbert Krebbers resolved all threads

    resolved all threads

  • Robbert Krebbers added 7 commits

    added 7 commits

    • b7b87501...06909b86 - 3 commits from branch master
    • d40e0d65 - Add missing `Params` instances.
    • c67f7331 - Use "higher-order" propers for list operations.
    • cce709e0 - Add some tests for backwards compatibility.
    • 0387d97b - Fix `Params` for `alter` and add a test.

    Compare with previous version

  • Going to merge.

  • mentioned in commit 66a28855

  • mentioned in commit iris@efc49b45

  • Robbert Krebbers mentioned in merge request iris!837 (merged)

    mentioned in merge request iris!837 (merged)

  • Please register or sign in to reply
    Loading