Global embeddings of productive-node owners #
The local productive nodes of a pending parse occupy one contiguous window in the root carrier
Fin (10 * input.length). A binary root owns the first slot; its left and right children
occupy the two following consecutive subwindows. These embeddings agree definitionally, up to
the arithmetic offsets, with NFParse.eventOwnerNat.
Productive nodes split into the binary root, the left subtree, and the right subtree.
Embed a left-child productive-node ID into the parent's preorder numbering.
Equations
- left.embedBinaryLeftProductive right owner = ⟨↑owner + 1, ⋯⟩
Instances For
Embed a right-child productive-node ID after the root and left-subtree ranges.
Equations
- left.embedBinaryRightProductive right owner = ⟨left.productiveCount + ↑owner + 1, ⋯⟩
Instances For
A binary-free consumed route preserves the canonical productive-node owner numbering when
its popped prefix is removed. This is the owner-aware form of
consumeRoute_popContinuation_noBinary_with_consumption; it lives here because
NFParse.eventOwnerNat is defined after that earlier continuation theorem.
A contiguous slice of the root productive-node carrier assigned to one pending parse.
- base : ℕ
Productive nodes use only the initial
2|input|-1slots.
Instances For
Start of the generic ghost-owner pool. The preceding interval contains the primary and shadow semantic windows together with the two dedicated temporary labels; every pooled label is therefore outside both semantic windows and distinct from both temporary labels.
Equations
- IndexedGrammar.Aho.genericOwnerOffset input = 4 * input.length
Instances For
Embed one of the 6|input| reusable pool slots into the generic owner bank.
Equations
- IndexedGrammar.Aho.genericOwner slot = ⟨IndexedGrammar.Aho.genericOwnerOffset input + ↑slot, ⋯⟩
Instances For
The complete reusable owner universe. Its cardinality, not the ambient carrier size, is what bounds the number of persistent indices on the erased work tape.
Equations
- IndexedGrammar.Aho.genericOwnerRange g input = List.ofFn fun (slot : Fin (6 * input.length)) => IndexedGrammar.Aho.genericOwner slot
Instances For
The first of the two labels between the semantic banks and the generic owner pool.
Instances For
The second of the two labels between the semantic banks and the generic owner pool.
Instances For
Embed a local productive-node ID into its root-capacity owner window.
Instances For
A productive window embeds local IDs injectively into the root carrier.
Globally embed the canonical owner selected for an event depth.
Equations
- window.eventOwner d hd = window.owner (parse.eventOwner d hd)
Instances For
Distinct event depths in one task receive distinct global owners.
The root parse owns the complete root productive-node carrier.
Equations
- IndexedGrammar.Aho.ProductiveOwnerWindow.root parse = { base := 0, end_le := ⋯ }
Instances For
Transport a window across a parse change which preserves productive-node count.
Instances For
Unary pop constructors preserve the productive-node window.
Instances For
Unary push constructors preserve the productive-node window.
Instances For
Event owners commute with the one-position depth shift of a pop.
Event owners commute with the canonical preimage selected through a push.
Away from depth zero, a push has the unique event-depth preimage d + 1.
Every positive parent event has the unique child preimage one position deeper.
A child event newly exposed at depth one cannot collide with any positive parent event.
The immediately preceding global slot is a canonical scratch owner for any non-root productive window.
Instances For
The distinguished scratch slot is outside, and hence distinct from, every local owner.
The left child occupies the subwindow immediately after the binary root.
Instances For
The right child occupies the subwindow after the root and complete left subtree.
Equations
- window.binaryRight = { base := window.base + left.productiveCount + 1, end_le := ⋯ }
Instances For
Embedding through the left subwindow agrees with embedding its local ID into the parent.
Embedding through the right subwindow agrees with embedding its local ID into the parent.
A positive event inherited from the left child has the same global owner in both windows.
A positive event selected from the right child has the same global owner in both windows.
The binary root's productive event is exactly the first owner of its window.