Transporting canonical event boundaries through parse constructors #
These lemmas isolate the block-boundary bookkeeping used by the compressed runner. They do
not construct machine steps: they only transport EventCompatible across binary children and
the singleton/fused block layouts created by pop and push moves.
A binary parent's compatible partition is compatible with its left child.
Equations
- compatible.binaryLeft = { boundary := fun (d : ℕ) (hd : d ∈ left.eventDepths) => compatible.boundary d ⋯ }
Instances For
A binary parent's compatible partition is compatible with its right child.
Equations
- compatible.binaryRight = { boundary := fun (d : ℕ) (hd : d ∈ right.eventDepths) => compatible.boundary d ⋯ }
Instances For
Compatible binary children combine into a compatible parent.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Generic whole-block pop transport. A caller only has to show that every residual event depth shifts upward by the concrete length of the removed first block.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A structural pop removes its singleton first block and exposes a compatible residual parse.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Conversely, prefixing the popped flag as a singleton block makes the pop parent compatible.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A fresh singleton block above the old partition is compatible with the pushed child.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If the pushed child has no event at depth one, the new flag may be fused into the existing first block while preserving all event boundaries.
Equations
- One or more equations did not get rendered due to their size.