Skip to content
Snippets Groups Projects

Expose atomic lifetimes in the API, end many in a single step

Merged Isaac van Bakel requested to merge ivanbakel/lambda-rust:atomic_lft_promotion into master
All threads resolved!

This turns out to be useful for my borrow-checker proofs, which require the ability to mass-end lifetimes to model loan termination without generating an inordinate number of laters.

This extracts the proof that atomic lifetimes can end from lft_create_strong as a standalone lemma, and then proves a stronger version of that lemma that terminates arbitrarily many atomic lifetimes at the same time (which is allowed because they don't overlap.) In fact, I think this generalises to being allowed to terminate any number of lifetimes at in the same step, but that requires some more set/multiset theory to prove, I think.

To prove this, I require a few data structure lemmas which I am trying to upstream. Two are going into iris!1049 (merged). The gset_to_map mass-update lemma is harder to generalise - I thought about including it upstream, but it's rather specific here and it doesn't seem to have a nice "kernel" to extract out that would keep the proof burden in these changes small.

Merge request reports

Merged by Ralf JungRalf Jung 4 months ago (Dec 13, 2024 7:48pm UTC)

Loading

Pipeline #115009 passed

Pipeline passed for a97f02f9 on master

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Ralf Jung
  • Ralf Jung
  • Ralf Jung
  • Isaac van Bakel added 9 commits

    added 9 commits

    Compare with previous version

  • Ralf Jung resolved all threads

    resolved all threads

  • Ralf Jung
  • added 1 commit

    • ff921b62 - Move `lft_kill_atomic` to derived laws

    Compare with previous version

  • Isaac van Bakel resolved all threads

    resolved all threads

  • Ralf Jung mentioned in commit a97f02f9

    mentioned in commit a97f02f9

  • merged

  • Thanks, we can finally land this then :)

  • Please register or sign in to reply
    Loading