Rational functions

Lax132576.RationalFunctions · 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.

    Natural Language Statement

    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.

    Concept map
    3 concepts
    100%
    DefinitionThis conceptRelated conceptA → B: B builds on ADescendants are omitted for concepts with more than 10 descendants.

    In the paper

    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.

    Discussion

    Ask a question or add context. Endorsements and structured flags are kept in the review panel above.

    Loading discussion…