Implement mixed-size access in UM promising model#98
Open
Conversation
2ecafff to
34623fa
Compare
tperami
requested changes
Apr 8, 2026
Collaborator
tperami
left a comment
There was a problem hiding this comment.
This is good work! There are still some kinks to iron out both in the fiddly part of the mixed-semantics and in general organization, but I think this is close to being mergeable
- Msg.t: dependent record with `val : bv (8 * size)` so all messages share one list - Multi-byte reads: single observation point per load - Exclusive monitor: stores LDXR addr/size, mismatch is non-deterministic (ARM ARM B2.12) - CBitvector: vm_compute-friendly bv_eq_dec/countable/finite replacing stdpp's opaque versions - GenPromising: mEvent_eqb / remove_dups_by to bypass eq_dec blocking under vm_compute
34623fa to
19bd9df
Compare
febyeji
commented
Apr 9, 2026
| - [tr]: snapshot time | ||
| - [mv]: byte value from the snapshot | ||
| - [tw]: write timestamp from the snapshot *) | ||
| Definition read_fwd (macc : mem_acc) (fwdb : gmap address FwdItem.t) |
Collaborator
Author
There was a problem hiding this comment.
Move this outside Memory module and split fwdbank and memory
| End Memory. | ||
| Import (hints) Memory. | ||
|
|
||
| Module FwdItem. |
Collaborator
Author
There was a problem hiding this comment.
It should be after Memory module. (It should patch the results from Memory itself.)
| let resolved := | ||
| map (λ '(a, (sv, tw)), read_fwd macc fwdb init mem t a sv tw) | ||
| (zip addrs snap) in | ||
| Some (bv_of_bytes (8 * size) (map (λ '(v, _, _), v) resolved), |
Collaborator
Author
There was a problem hiding this comment.
Reduce the number of bitvector <-> list casting.
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.
Summary
Msg.tis now a dependent record withval : bv (8 * size)so all messages live in one listbv_eq_dec_compute,bv_countable_compute,bv_finite_computein CBitvector.v: vm_compute-friendly replacements for stdpp's opaquebv_eq_dec/bv_countable/bv_finite, whosebv_wf_pi(Qed) blocks reduction of equality proofs