Lax314295.RationalOfRelabelling
MSO relabellings are rational
concepts/Lax314295/RationalOfRelabelling.lean · lax-314295
No public endorsements yet.
Loading review…
Sign in with ORCIDConcept map
In the paper
- page 121 of the paper of lax-157538, Transducers
Theorem
Every function definable by an mso relabelling is rational (Theorem C.4.4 of Transducers, Bloem–Engelfriet, the implication from relabelling to rational). By Claim C.4.6 the strings annotated at every position with the formula true there form a regular language, so an automaton with output guesses the annotation, checks it, and outputs the output map of the guessed formulas.
Lean source view on GitHub
| 1 | import Lax132576.RationalFunctions |
| 2 | import Lax314295.MSORelabellings |
| 3 | |
| 4 | /-! |
| 5 | --- |
| 6 | title: MSO relabellings are rational |
| 7 | type: theorem |
| 8 | --- |
| 9 | Every function definable by an mso relabelling is rational (Theorem C.4.4 of |
| 10 | *Transducers*, Bloem–Engelfriet, the implication from relabelling to rational). |
| 11 | By Claim C.4.6 the strings annotated at every position with the formula true |
| 12 | there form a regular language, so an automaton with output guesses the |
| 13 | annotation, checks it, and outputs the output map of the guessed formulas. |
| 14 | |
| 15 | # Formalization notes |
| 16 | |
| 17 | Both alphabets are assumed finite, as in the book. |
| 18 | -/ |
| 19 | |
| 20 | namespace Lax314295.RationalOfRelabelling |
| 21 | |
| 22 | open Lax132576.RationalFunctions Lax314295.MSORelabellings |
| 23 | |
| 24 | /-- A function definable by an mso relabelling is rational. -/ |
| 25 | axiom isRationalFun_of_isMSORelabelling {A B : Type} [Finite A] [Finite B] |
| 26 | {f : List A → List B} (hf : IsMSORelabelling f) : IsRationalFun f |
| 27 | |
| 28 | end Lax314295.RationalOfRelabelling |
| 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