Lax132576.RationalMachineIndependent
Machine-independent characterisation of rational functions
concepts/Lax132576/RationalMachineIndependent.lean · lax-132576
No public endorsements yet.
Loading review…
Sign in with ORCIDConcept map
In the paper
- page 76 of the paper of lax-157538, Transducers
Theorem
A function is rational if and only if it is continuous and the equivalence relation
on input strings has finite index (Theorem B.4.13 of Transducers, Reutenauer and Schützenberger). For a rational function computed by a bimachine, two strings with the same state of the suffix automaton are equivalent, so the index is finite; conversely the finitely many classes are used as the states of a suffix automaton, and the output after a prefix is computed by a subsequential transducer for each class. String reversal is not rational: all its input strings are pairwise inequivalent.
Lean source view on GitHub
| 1 | import Mathlib.Data.Set.Finite.Basic |
| 2 | import Lax765601.Continuity |
| 3 | import Lax132576.RationalFunctions |
| 4 | import Lax132576.LeftDistance |
| 5 | |
| 6 | /-! |
| 7 | --- |
| 8 | title: Machine-independent characterisation of rational functions |
| 9 | type: theorem |
| 10 | --- |
| 11 | A function is rational if and only if it is continuous and |
| 12 | the equivalence relation |
| 13 | |
| 14 | on input strings has finite index (Theorem B.4.13 of *Transducers*, Reutenauer |
| 15 | and Schützenberger). For a rational function computed by a bimachine, two |
| 16 | strings with the same state of the suffix automaton are equivalent, so the |
| 17 | index is finite; conversely the finitely many classes are used as the states of |
| 18 | a suffix automaton, and the output after a prefix is computed by a |
| 19 | subsequential transducer for each class. String reversal is not rational: all |
| 20 | its input strings are pairwise inequivalent. |
| 21 | |
| 22 | # Formalization notes |
| 23 | |
| 24 | The relation is `BoundedVarRel f` of `LeftDistance`; finite index is the |
| 25 | finiteness of the set of its classes `{w₂ | w₁ ∼ w₂}`, as a set of sets. Both |
| 26 | alphabets are assumed finite. |
| 27 | -/ |
| 28 | |
| 29 | namespace Lax132576.RationalMachineIndependent |
| 30 | |
| 31 | open Lax765601.Continuity Lax132576.RationalFunctions Lax132576.LeftDistance |
| 32 | |
| 33 | /-- A function is rational if and only if it is continuous and the relation of |
| 34 | bounded variation has finitely many classes. -/ |
| 35 | axiom isRationalFun_iff {A B : Type} [Finite A] [Finite B] (f : List A → List B) : |
| 36 | IsRationalFun f ↔ |
| 37 | Continuous f ∧ {C : Set (List A) | ∃ w₁, C = {w₂ | BoundedVarRel f w₁ w₂}}.Finite |
| 38 | |
| 39 | end Lax132576.RationalMachineIndependent |
| 40 |
Formalization notes
The relation is of ; finite index is the finiteness of the set of its classes , as a set of sets. 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