Sparse-entry miss cleanup — definitions #
The miss branch after entryMatchReadTM resets the seven decoder/result
scratch tapes while preserving the consumed source cursor and query address.
This restores the exact invariant needed to inspect the next encoded entry.
Embed the seven cleanup slots into the nine entry-match tapes. Slots zero
through five select decoder scratch 1..6; slot six selects result tape 8,
skipping the preserved query tape 7.
Instances For
The cleanup-slot embedding is injective.
Fixed, machine-level list of the seven scratch tapes reset on a miss.
Equations
Instances For
Canonical represented contents occupying each scratch tape at the readable match endpoint. Values away from the seven scratch tapes are irrelevant.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Per-tape cursor bound inherited from the readable match contract.
Equations
- Complexity.RAM.RegisterStore.Machine.entryMissHeadBound entry queryBits initialWork i = (initialWork i).head + Complexity.RAM.RegisterStore.Machine.entryMatchReadTime entry queryBits
Instances For
Rewind the preserved query, then reset all decoder/result scratch after a failed entry comparison.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Compositional miss-cleanup bound specialized to the readable endpoint.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Loop invariant restored after a failed match: the source points at the next entry, query is preserved, and all seven scratch tapes are canonical blank/zero tapes ready for another decode.
- source : (finalWork tapes.source).HasBinarySuffix remaining
- address : (finalWork tapes.address).HasBinaryPrefix []
- value : (finalWork tapes.value).HasBinaryPrefix []
- addressCounter : (finalWork tapes.addressCounter).HasBinaryNat 0
- addressWidth : (finalWork tapes.addressWidth).HasBinaryNat 0
- valueCounter : (finalWork tapes.valueCounter).HasBinaryNat 0
- valueWidth : (finalWork tapes.valueWidth).HasBinaryNat 0
- query : (finalWork tapes.query).HasBinaryString queryBits
- result : (finalWork tapes.result).HasBinaryPrefix []
- frame (i : Fin n) : i ≠ tapes.source → i ≠ tapes.address → i ≠ tapes.value → i ≠ tapes.addressCounter → i ≠ tapes.addressWidth → i ≠ tapes.valueCounter → i ≠ tapes.valueWidth → i ≠ tapes.query → i ≠ tapes.result → finalWork i = initialWork i