Lax194892.PolyregularOfFor
For-transducers compute polyregular functions
concepts/Lax194892/PolyregularOfFor.lean · lax-194892
No public endorsements yet.
Loading review…
Sign in with ORCIDConcept map
In the paper
- page 157 of the paper of lax-157538, Transducers
Theorem
Every function computed by a for-transducer is polyregular (Theorem D.1.1 of Transducers, the implication from for-transducer to polyregular). The program is put in prenex form (Lemma D.1.3); the tuples of loop variables are enumerated, in the order of the loops, by iterated marked squaring, and the loop-free body is evaluated on each tuple by a rational function.
Lean source view on GitHub
| 1 | import Lax194892.PolyregularFunctions |
| 2 | import Lax194892.ForTransducers |
| 3 | |
| 4 | /-! |
| 5 | --- |
| 6 | title: For-transducers compute polyregular functions |
| 7 | type: theorem |
| 8 | --- |
| 9 | Every function computed by a for-transducer is polyregular (Theorem D.1.1 of |
| 10 | *Transducers*, the implication from for-transducer to polyregular). The program |
| 11 | is put in prenex form (Lemma D.1.3); the tuples of loop variables are |
| 12 | enumerated, in the order of the loops, by iterated marked squaring, and the |
| 13 | loop-free body is evaluated on each tuple by a rational function. |
| 14 | |
| 15 | # Formalization notes |
| 16 | |
| 17 | Both alphabets are assumed finite, as in the book. |
| 18 | -/ |
| 19 | |
| 20 | namespace Lax194892.PolyregularOfFor |
| 21 | |
| 22 | open Lax194892.PolyregularFunctions Lax194892.ForTransducers |
| 23 | |
| 24 | /-- A function computed by a for-transducer is polyregular. -/ |
| 25 | axiom isPolyregular_of_isForTransducer {A B : Type} [Finite A] [Finite B] |
| 26 | {f : List A → List B} (hf : IsForTransducer f) : IsPolyregular f |
| 27 | |
| 28 | end Lax194892.PolyregularOfFor |
| 29 |
Formalization notes
Both alphabets are assumed finite, as in the book.
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