Draft — mutable and not usable as a dependency; its citation marks the draft state.

Lax194892.ChildGraphOfConfiguration

A for-transducer produces the child configuration graph

concepts/Lax194892/ChildGraphOfConfiguration.lean · lax-194892

proven

Loading review…

Sign in with ORCID

Community review

Flags

Each flag is tied to a public ORCID identity and explains why this concept may be incorrect.

No flags have been submitted.

    Community review

    Flag this concept

    State precisely what appears incorrect. This explanation will be public under your ORCID name.

    No source line selected.

    Concept map

    Proven claimDefinitionThis conceptRelated conceptA → B: B builds on A

    Evidence

    Each proof establishes this claim relative to its assumptions.

    In the paper

    Theorem

    There is a for-transducer which inputs the string representation of a configuration and outputs the string representation of its child configuration graph (Claim D.2.6 of Transducers). Each letter of the graph is a Boolean combination of regular properties of the configuration with one marked gap — whether a given pair of children in adjacent columns is joined by a balanced run (Claim D.2.3) — so the graph is computed by a rational function, hence by a for-transducer.

    Lean source view on GitHub

    1import Lax194892.ForTransducers
    2import Lax194892.ChildConfigurationGraphs
    3
    4/-!
    5---
    6title: A for-transducer produces the child configuration graph
    7type: theorem
    8---
    9There is a for-transducer which inputs the string representation of a
    10configuration and outputs the string representation of its child configuration
    11graph (Claim D.2.6 of *Transducers*). Each letter of the graph is a Boolean
    12combination of regular properties of the configuration with one marked gap —
    13whether a given pair of children in adjacent columns is joined by a balanced
    14run (Claim D.2.3) — so the graph is computed by a rational function, hence by a
    15for-transducer.
    16
    17# Formalization notes
    18
    19As for Lemma D.2.5 the stack is required to have fewer than `k` pebbles, and
    20the index `nid` of the moving pebble, recorded in the output alphabet, is the
    21height of the stack. The input alphabet and the state space are assumed
    22finite.
    23-/
    24
    25namespace Lax194892.ChildGraphOfConfiguration
    26
    27open Lax194892.PebbleTransducers Lax194892.PebbleConfigurationEncoding
    28 Lax194892.ChildConfigurationGraphs Lax194892.ForTransducers
    29
    30/-- A for-transducer maps the representation of a configuration to the
    31representation of its child configuration graph. -/
    32axiom exists_forTransducer_childGraph {A B Q : Type} [Finite A] [Finite Q] {k : ℕ}
    33 (M : Pebble A B Q k) :
    34 ∃ f : List (ConfLetter A Q k) → List (CGLetter A Q k), IsForTransducer f ∧
    35 ∀ (q₀ : Q) (st : List ℕ) (w : List A) (ch : ℕ → Vtx Q) (m : ℕ) (nid : Fin k),
    36 (∀ p, p ∈ st → p ≤ w.length) → st.length < k → (nid : ℕ) = st.length →
    37 IsChildSeq M w q₀ st ch m →
    38 f (confEnc q₀ st w) = cgOfChildren w st nid ch m
    39
    40end Lax194892.ChildGraphOfConfiguration
    41
    Show Proof

    Formalization notes

    As for Lemma D.2.5 the stack is required to have fewer than kk pebbles, and the index nidnid of the moving pebble, recorded in the output alphabet, is the height of the stack. The input alphabet and the state space are assumed finite.

    Used by

    none

    From Mathlib

    none

    Community review

    Discussion

    Ask a question or add context. Endorsements and structured flags are kept in the review panel above; your ORCID profile must share a public name.

    0 comments

    Loading discussion…