Ordered metadata arrays with an exact key-to-row index.
The index stores only row positions, never values. Payloads therefore occur once in the ordered rows. A certificate ties each index to those exact rows; constructors and mutations rebuild both together. Iteration retains source array order and duplicate-key lookup semantics.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Instances For
Equations
- table.toArray = Miri.Memory.KeyedArray.rows✝ table
Instances For
Equations
- table.toPairs = (Miri.Memory.KeyedArray.keys✝ table).zip (Miri.Memory.KeyedArray.rows✝ table)
Instances For
Equations
Instances For
Test every same-key row, preserving the historical Array.any behavior
for deliberately constructed duplicate metadata keys.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- table.contains key = (Miri.Memory.KeyedArray.indexState✝ table).snd.contains key
Instances For
Equations
- table.isEmpty = (Miri.Memory.KeyedArray.rows✝ table).isEmpty
Instances For
Equations
- table.size = (Miri.Memory.KeyedArray.rows✝ table).size
Instances For
Append while preserving first-row lookup and source iteration order.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Filter and reindex a cold metadata table.
Equations
- table.filter keep = Miri.Memory.KeyedArray.ofArray keyFn (Array.filter (fun (row : V) => keep (keyFn row) row) (Miri.Memory.KeyedArray.rows✝ table))
Instances For
Map rows in source order and rebuild the index, allowing key changes.
Equations
- table.mapValues f = Miri.Memory.KeyedArray.ofArray keyFn (Array.map f (Miri.Memory.KeyedArray.rows✝ table))
Instances For
Map row payloads, reusing the certified index when the mapped rows retain
the exact key sequence. A map that changes keys falls back to a full reindex,
so this preserves the unrestricted semantics of mapValues.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Apply a key-preserving row update while retaining the certified key sequence and index. The proof obligation is local to the update function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Update every row at a key's certified positions, retaining the existing index.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The certified hash index contains precisely the keys of current rows.
A certified present key always selects a real row, including duplicate keys.
Missing lookup excludes index membership, without an additional coherence law.