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

Lax132576.RationalFunctions

Rational functions

concepts/Lax132576/RationalFunctions.lean · lax-132576

definition

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

    Definition

    A rational function (Definition B.2.1 of Transducers) is the special case of a rational relation in which each input string is related to exactly one output string. The definition is semantic: the underlying automaton is nondeterministic and merely happens to have a unique output for every input, possibly through several runs; Theorem B.2.3 gives the deterministic model, the bimachine, that computes exactly these functions. Rational functions inherit closure under composition and continuity from rational relations, and every Mealy machine is a rational function.

    Lean source view on GitHub

    1import Lax132576.RationalRelations
    2
    3/-!
    4---
    5title: Rational functions
    6type: definition
    7---
    8A *rational function* (Definition B.2.1 of *Transducers*) is the special case
    9of a rational relation in which each input string is related to exactly one
    10output string. The definition is semantic: the underlying automaton is
    11nondeterministic and merely happens to have a unique output for every input,
    12possibly through several runs; Theorem B.2.3 gives the deterministic model, the
    13bimachine, that computes exactly these functions. Rational functions inherit
    14closure under composition and continuity from rational relations, and every
    15Mealy machine is a rational function.
    16
    17# Formalization notes
    18
    19A function is rational if its graph `fun w v => v = f w` is a rational
    20relation. Since `f` is a total function, this is exactly "a rational relation
    21in which each input has exactly one output"; partial rational functions do not
    22occur in the book's statements.
    23-/
    24
    25namespace Lax132576.RationalFunctions
    26
    27open Lax132576.RationalRelations
    28
    29/-- A string-to-string function is rational if its graph is a rational relation.
    30-/
    31def IsRationalFun {A B : Type} (f : List A → List B) : Prop :=
    32 IsRationalRel (fun w v => v = f w)
    33
    34end Lax132576.RationalFunctions
    35

    Formalization notes

    A function is rational if its graph funwv=>v=fwfun w v => v = f w is a rational relation. Since ff is a total function, this is exactly "a rational relation in which each input has exactly one output"; partial rational functions do not occur in the book's statements.

    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…