Padded Aho machine rows #
The fixed-width row encoding and semantic padded transition relation used by the LBA compiler.
Twenty-one-slot padded rows #
The fixed number of logical work squares per input position used by the scheduler bound. Aho proves the sharper constant six; the persistent scheduler invariant currently uses twenty-one.
Equations
Instances For
One packed work block. none is a blank logical work square.
Equations
Instances For
The completely unused packed work block.
Equations
Instances For
Once a packed-cell offset lies beyond the logical word, that whole block is blank.
A running row cell retains its immutable input letter, whether that input position has already been compared, and twenty-one logical work squares.
Instances For
Equations
- IndexedGrammar.Aho.RunCell.instFintype = Fintype.ofInjective (fun (c : IndexedGrammar.Aho.RunCell g) => (c.input, c.consumed, c.block)) ⋯
Row cells are raw input cells before initialization or packed running cells afterwards.
- input {T : Type} {g : IndexedGrammar T} : T → RowCell g
- run {T : Type} {g : IndexedGrammar T} : RunCell g → RowCell g
Instances For
Equations
- One or more equations did not get rendered due to their size.
Read the packed block of a running row cell.
Equations
Instances For
Read the consumed-input bit of a running row cell.
Equations
Instances For
Recover the immutable input letter from either presentation of a row cell.
Equations
Instances For
The row presented to the certified-row system by an input word.
Equations
Instances For
Encode a running configuration, starting at physical input-cell offset cell.
Equations
Instances For
Pack a composite configuration into one width-twenty-one row cell per input letter.
Equations
- IndexedGrammar.Aho.encodeRunRow g w c = IndexedGrammar.Aho.encodeRunRowFrom g c.work.slots c.inputPos 0 w
Instances For
The only nonblank block in an initialized running row.
Equations
Instances For
The only nonblank block in a final running row.
Equations
Instances For
Canonical cellwise shape of a nonempty initialization row.
Canonical cellwise shape of a nonempty final row.
Equal running rows necessarily carry the same immutable input word.
On a fixed input row, bounded marked encodings are injective in the full configuration, including both the input position and the active work-head position.
Bounded marked rows recover both the immutable input word and the complete configuration.
The initialization row step.
Equations
- IndexedGrammar.Aho.PaddedInitStep g x y = ∃ (w : List T), w ≠ [] ∧ x = IndexedGrammar.Aho.inputRow g w ∧ y = IndexedGrammar.Aho.encodeRunRow g w (IndexedGrammar.Aho.initialConfig g)
Instances For
A bounded packed-row image of one Aho composite move.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Semantic padded-row relation: initialize once, then perform a bounded composite move.
Equations
Instances For
A final row has consumed the whole frozen input and contains Aho's final $ # work word.
Equations
- IndexedGrammar.Aho.FinalRow g row = ∃ (w : List T), w ≠ [] ∧ row = IndexedGrammar.Aho.encodeRunRow g w (IndexedGrammar.Aho.finalConfig g w.length)