Merged
Conversation
lzy0505
added a commit
to lzy0505/iris-lean
that referenced
this pull request
Mar 2, 2026
Co-authored-by: Zongyuan Liu <liuzongyuan0505@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
While the initial heaps API was sufficient for porting and using potentially infinite map-like resources, PR #131 defines a richer theory for finite maps which is not compatible with the existing API. In this PR, I refactor the heaps API and CMRA's so that both formalizations can be supported under the same framework.
This PR is currently a work in progress, however there are three major changes so far.
Store T K V, representing the notion that the typeTbehaved as a (total) mapK -> V. This would allow the use of specialized data structures which were not able to represent all possible value types. Now, thePartialMap (T : Type _ -> Type) Ktypeclass can only support types that are capable of holding any value, but this substantially simplifies the interface. In particular, thehhmapanddmapclasses can be removed in favour of requiring the typeTbe functorial.Store T K Vwas a type of total maps, and (partial) heaps extended ``Heap T K (Option V)`. This was counterintuitive, and in hindsight, not necessary.extin the FiniteMaps interface) to pointwise equality.The Finite Maps section from #131 will be likely be changed substantially. Lemmas which do not use finiteness are being generalized to
PartialMap. I am planning on inverting the FiniteMap hierarchy to better match the typeclass-based approach in stdpp.Checklist
PORTING.mdas appropriateauthorssection of any appropriate filesGenerative AI Guidelines
AI assistance is permitted when making contributions to Iris-Lean, however, generative AI systems tend to produce code which takes a long time to review.
Please carefully review your code to ensure it meets the following standards.
havestatements that do not aid readability or code reuse should be inlined.In our experience, a good place to begin refactoring is by re-arranging and combining independent tactic invocations.
We also find that pointing generative AI systems to the Mathlib code style guidelines can help them perform some of this refactoring work.