Documentation

DescriptiveComplexity.Problems.Wide.TrackWrites

What a rule may not write #

A forward run constructs the tape it walks: every lemma says the machine reaches a configuration whose tape is a named function of a named tape state, so nothing has to be said about what the rules leave alone. A backward reading is handed an arbitrary run and has to recognize the tape, and there the missing fact bites: a configuration's tape is of the form DescriptiveComplexity.Draw.Data.ixBack of some tape state only because no rule ever writes the slots the channel wrote – the register flag, the two ends, the block one-hots, the name coordinates and the padding flag.

This file states that (Rule.KeepsFile) and proves it of the shapes a rule's write can take: no write at all, an update of a slot that is not one of those, and the guess's own write. With them the outer layer's rules keep the file, which is what an opening's reading needs.

A run as a sequence #

The slots the channel writes #

def DescriptiveComplexity.Draw.Slot.IsFile {ι : Type} {ko ki dd0 : ℕ} :
Slot ι ko ki dd0 → Prop

A slot of the register file: what the channel writes at time zero and no rule may touch – the register flag, the file's two ends, the block one-hots, the name coordinates and the padding flag. Everything else is a track: scratch the program owns.

Equations
Instances For
    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph
    @[simp]
    theorem DescriptiveComplexity.Draw.Slot.not_isFile_old {ι : Type} {ko ki dd0 : ℕ} (i : ι) :
    Dependency graph
    @[simp]
    theorem DescriptiveComplexity.Draw.Slot.not_isFile_new {ι : Type} {ko ki dd0 : ℕ} (i : ι) :
    Dependency graph

    Rules that keep the file #

    The shapes the outer layer writes with #

    Reading a tape back as a tape state #

    structure DescriptiveComplexity.Draw.Data.TapeShape {L : FirstOrder.Language} {dt : Data L} {A R' P' I : Type} (lay : Layout dt A R' P' I) (zero one : A) (st₀ : TapeSt dt A R' P' I) (rest : (Univ A R' P' dt.KIx dt.dd → Prop) → dt.SlotIx → A) :

    A tape the reading recognizes: every cell carries a slot vector, the file's slots are the layout's, the four addressed tracks are clear, and every other track is a bit.

    Instances For
      Dependency graph

      One step of the machine, seen from the tape #

      The reading, along a run #