Pebble transducers are computed by for-transducers
Lax194892.ForOfPebble · concepts/Lax194892/ForOfPebble.lean · lax-194892
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Theorem
Every function computed by a pebble transducer is computed by a for-transducer (Theorem D.2.4 of Transducers, the implication from pebble to for-transducer). The run is organised as a tree of configurations; the children of a configuration are produced by a for-transducer (Lemma D.2.5), and iterating this over the height of the stack, with the output letters read off the leaves, gives a polyregular function, hence a for-transducer.
Concept map
Evidence
Each proof establishes this claim relative to its assumptions.
In the paper
- page 168 of the paper of lax-157538, Transducers
Lean source view on GitHub
| 1 | import Lax194892.PebbleTransducers |
| 2 | import Lax194892.ForTransducers |
| 3 | |
| 4 | /-! |
| 5 | --- |
| 6 | title: Pebble transducers are computed by for-transducers |
| 7 | type: theorem |
| 8 | --- |
| 9 | Every function computed by a pebble transducer is computed by a |
| 10 | for-transducer (Theorem D.2.4 of *Transducers*, the implication from pebble to |
| 11 | for-transducer). The run is organised as a tree of configurations; the |
| 12 | children of a configuration are produced by a for-transducer (Lemma D.2.5), and |
| 13 | iterating this over the height of the stack, with the output letters read off |
| 14 | the leaves, gives a polyregular function, hence a for-transducer. |
| 15 | |
| 16 | # Formalization notes |
| 17 | |
| 18 | Both alphabets are assumed finite, as in the book. The formal proof goes through |
| 19 | polyregularity by an induction on the number of pebbles rather than through |
| 20 | Lemma D.2.5. |
| 21 | -/ |
| 22 | |
| 23 | namespace Lax194892.ForOfPebble |
| 24 | |
| 25 | open Lax194892.PebbleTransducers Lax194892.ForTransducers |
| 26 | |
| 27 | /-- A function computed by a pebble transducer is computed by a for-transducer. -/ |
| 28 | axiom isForTransducer_of_isPebbleTransducer {A B : Type} [Finite A] [Finite B] |
| 29 | {f : List A → List B} (hf : IsPebbleTransducer f) : IsForTransducer f |
| 30 | |
| 31 | end Lax194892.ForOfPebble |
| 32 |
Formalization notes
Both alphabets are assumed finite, as in the book. The formal proof goes through polyregularity by an induction on the number of pebbles rather than through Lemma D.2.5.
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments