Lax194892.ChildGraphOfConfiguration
A for-transducer produces the child configuration graph
concepts/Lax194892/ChildGraphOfConfiguration.lean · lax-194892
No public endorsements yet.
Loading review…
Sign in with ORCIDConcept map
In the paper
- page 170 of the paper of lax-157538, Transducers
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
| 1 | import Lax194892.ForTransducers |
| 2 | import Lax194892.ChildConfigurationGraphs |
| 3 | |
| 4 | /-! |
| 5 | --- |
| 6 | title: A for-transducer produces the child configuration graph |
| 7 | type: theorem |
| 8 | --- |
| 9 | There is a for-transducer which inputs the string representation of a |
| 10 | configuration and outputs the string representation of its child configuration |
| 11 | graph (Claim D.2.6 of *Transducers*). Each letter of the graph is a Boolean |
| 12 | combination of regular properties of the configuration with one marked gap — |
| 13 | whether a given pair of children in adjacent columns is joined by a balanced |
| 14 | run (Claim D.2.3) — so the graph is computed by a rational function, hence by a |
| 15 | for-transducer. |
| 16 | |
| 17 | # Formalization notes |
| 18 | |
| 19 | As for Lemma D.2.5 the stack is required to have fewer than `k` pebbles, and |
| 20 | the index `nid` of the moving pebble, recorded in the output alphabet, is the |
| 21 | height of the stack. The input alphabet and the state space are assumed |
| 22 | finite. |
| 23 | -/ |
| 24 | |
| 25 | namespace Lax194892.ChildGraphOfConfiguration |
| 26 | |
| 27 | open Lax194892.PebbleTransducers Lax194892.PebbleConfigurationEncoding |
| 28 | Lax194892.ChildConfigurationGraphs Lax194892.ForTransducers |
| 29 | |
| 30 | /-- A for-transducer maps the representation of a configuration to the |
| 31 | representation of its child configuration graph. -/ |
| 32 | axiom 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 | |
| 40 | end Lax194892.ChildGraphOfConfiguration |
| 41 |
Formalization notes
As for Lemma D.2.5 the stack is required to have fewer than pebbles, and the index 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.
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