Langlib

Langlib.Grammars.Indexed.NormalForm.Aho.Scheduler.Ownership.EventLedger

Complete productive-owner ledgers for schedule cursors #

This module packages active, outside-window, and open-frame owner provenance into a cursor-level invariant.

structure IndexedGrammar.Aho.ScheduleOwnerLedger {T : Type} {g : IndexedGrammar T} [Fintype g.nt] {input : List T} {A : g.nt} {stack : List g.flag} {w : List T} (parse : g.NFParse A stack w) (window : ProductiveOwnerWindow parse) (cursor : ScheduleCursor g input) :

Complete cursor-level owner ledger, independent of any particular block-layout syntax.

Instances For

    The canonical root cursor has no persistent, outside, or framed owners.

    Equations
    Instances For
      theorem IndexedGrammar.Aho.ScheduleOwnerLedger.eventOwner_not_mem_indexOwners {T : Type} {g : IndexedGrammar T} [Fintype g.nt] {input : List T} {A : g.nt} {stack : List g.flag} {w : List T} {parse : g.NFParse A stack w} {window : ProductiveOwnerWindow parse} {cursor : ScheduleCursor g input} (ledger : ScheduleOwnerLedger parse window cursor) {blocks : List (List g.flag)} (activeLayout : EventOwnedLayout parse window blocks ledger.active) (hfocus : List.filterMap ScheduleAtom.indexOwner? [cursor.focus] = []) {d : } (hd : d parse.eventDepths) (hframeFresh : window.eventOwner d hdcursor.frameOwners) (hdiff : ∀ (i : Fin blocks.length), d blockEndpoint blocks i) :
      window.eventOwner d hdcursor.indexOwners

      The complete schedule ledger specializes the generic whole-cursor freshness theorem.

      def IndexedGrammar.Aho.ScheduleOwnerLedger.transport {T : Type} {g : IndexedGrammar T} [Fintype g.nt] {input : List T} {A B : g.nt} {stack stack' : List g.flag} {w w' : List T} {parse : g.NFParse A stack w} {residual : g.NFParse B stack' w'} {window : ProductiveOwnerWindow parse} {old new : ScheduleCursor g input} (ledger : ScheduleOwnerLedger parse window old) (residualWindow : ProductiveOwnerWindow residual) (hright : List.filterMap ScheduleAtom.indexOwner? new.right = ledger.active ++ ledger.outside) (houtside : ownerledger.outside, OutsideProductiveWindow residualWindow owner) (hframes : EventOwnedFrames residual residualWindow new.frameOwners) (hprefix : PrefixFrameLedger new) :
      ScheduleOwnerLedger residual residualWindow new

      Generic cursor reassembly after a parse/window transport.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For