Draft — mutable and not usable as a dependency; its citation marks the draft state.

Lax132576.RationalUnambiguousBimachine

Eilenberg's theorem: rational functions, unambiguous automata and bimachines

concepts/Lax132576/RationalUnambiguousBimachine.lean · lax-132576

proven

Loading review…

Sign in with ORCID

Community review

Flags

Each flag is tied to a public ORCID identity and explains why this concept may be incorrect.

No flags have been submitted.

    Community review

    Flag this concept

    State precisely what appears incorrect. This explanation will be public under your ORCID name.

    No source line selected.

    Concept map

    Proven claimDefinitionThis conceptRelated conceptA → B: B builds on A

    In the paper

    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 — RationalOfBimachineRationalOfBimachine, UnambiguousOfRationalUnambiguousOfRational and BimachineOfRationalBimachineOfRational — and this statement is their conjunction, the implication (2) ⇒ (1) being immediate since an unambiguous automaton is an automaton.

    Lean source view on GitHub

    1import Mathlib.Data.List.TFAE
    2import Lax132576.RationalFunctions
    3import Lax132576.Bimachines
    4
    5/-!
    6---
    7title: Eilenberg's theorem: rational functions, unambiguous automata and bimachines
    8type: theorem
    9---
    10For 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
    12functional; (2) it is computed by an unambiguous nondeterministic automaton
    13with output; (3) it is computed by a bimachine. The book proves
    14(3) ⇒ (1) ⇒ (2) ⇒ (3); here the three implications with content are separate
    15statements — `RationalOfBimachine`, `UnambiguousOfRational` and
    16`BimachineOfRational` — and this statement is their conjunction, the
    17implication (2) ⇒ (1) being immediate since an unambiguous automaton is an
    18automaton.
    19
    20# Formalization notes
    21
    22`List.TFAE` is mathlib's "the following are equivalent" for a list of
    23propositions. Both alphabets are assumed finite.
    24-/
    25
    26namespace Lax132576.RationalUnambiguousBimachine
    27
    28open Lax132576.RationalRelations Lax132576.RationalFunctions Lax132576.Bimachines
    29
    30/-- Eilenberg's theorem: a function is rational, computed by an unambiguous
    31automaton with output, or computed by a bimachine, equivalently. -/
    32axiom 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
    36end Lax132576.RationalUnambiguousBimachine
    37
    Show Proof

    Formalization notes

    List.TFAEList.TFAE is mathlib's "the following are equivalent" for a list of propositions. Both alphabets are assumed finite.

    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

    Loading discussion…