Lax132576.RationalUnambiguousBimachine
Eilenberg's theorem: rational functions, unambiguous automata and bimachines
concepts/Lax132576/RationalUnambiguousBimachine.lean · lax-132576
No public endorsements yet.
Loading review…
Sign in with ORCIDConcept map
Evidence
Each proof establishes this claim relative to its assumptions.
In the paper
- page 45 of the paper of lax-157538, Transducers
Theorem
For a string-to-string function the following are equivalent (Theorem B.2.3 of Transducers, Eilenberg): (1) it is a rational relation which happens to be functional; (2) it is computed by an unambiguous nondeterministic automaton with output; (3) it is computed by a bimachine. The book proves (3) ⇒ (1) ⇒ (2) ⇒ (3); here the three implications with content are separate statements — , and — and this statement is their conjunction, the implication (2) ⇒ (1) being immediate since an unambiguous automaton is an automaton.
Lean source view on GitHub
| 1 | import Mathlib.Data.List.TFAE |
| 2 | import Lax132576.RationalFunctions |
| 3 | import Lax132576.Bimachines |
| 4 | |
| 5 | /-! |
| 6 | --- |
| 7 | title: Eilenberg's theorem: rational functions, unambiguous automata and bimachines |
| 8 | type: theorem |
| 9 | --- |
| 10 | For a string-to-string function the following are equivalent (Theorem B.2.3 of |
| 11 | *Transducers*, Eilenberg): (1) it is a rational relation which happens to be |
| 12 | functional; (2) it is computed by an unambiguous nondeterministic automaton |
| 13 | with output; (3) it is computed by a bimachine. The book proves |
| 14 | (3) ⇒ (1) ⇒ (2) ⇒ (3); here the three implications with content are separate |
| 15 | statements — `RationalOfBimachine`, `UnambiguousOfRational` and |
| 16 | `BimachineOfRational` — and this statement is their conjunction, the |
| 17 | implication (2) ⇒ (1) being immediate since an unambiguous automaton is an |
| 18 | automaton. |
| 19 | |
| 20 | # Formalization notes |
| 21 | |
| 22 | `List.TFAE` is mathlib's "the following are equivalent" for a list of |
| 23 | propositions. Both alphabets are assumed finite. |
| 24 | -/ |
| 25 | |
| 26 | namespace Lax132576.RationalUnambiguousBimachine |
| 27 | |
| 28 | open Lax132576.RationalRelations Lax132576.RationalFunctions Lax132576.Bimachines |
| 29 | |
| 30 | /-- Eilenberg's theorem: a function is rational, computed by an unambiguous |
| 31 | automaton with output, or computed by a bimachine, equivalently. -/ |
| 32 | axiom tfae_rational_unambiguous_bimachine {A B : Type} [Finite A] [Finite B] |
| 33 | (f : List A → List B) : |
| 34 | [IsRationalFun f, IsUnambiguousRel (fun w v => v = f w), IsBimachine f].TFAE |
| 35 | |
| 36 | end Lax132576.RationalUnambiguousBimachine |
| 37 |
Formalization notes
is mathlib's "the following are equivalent" for a list of propositions. Both alphabets are assumed finite.
Used by
none
From Mathlib
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