Regular functions on types under string representation

Lax709149.RegularUnderRepresentation · concepts/Lax709149/RegularUnderRepresentation.lean · lax-709149

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 type-to-type function f:A→Bf : A \to B is regular under string representation (Definition C.5.2 of Transducers) if there is a regular string-to-string function f′f' over the eight-letter alphabet making the square commute: f′f' maps the representation of aa to the representation of f(a)f(a), for every a∈Aa \in A. Rational functions between types are defined in the same way. Nothing is required of f′f' on the strings that represent no element.

    Concept map
    8 concepts; 1 descendant hidden
    100%
    Proven claimDefinitionThis conceptRelated conceptA → B: B builds on A

    In the paper

    Lean source view on GitHub

    1import Lax132576.RationalFunctions
    2import Lax916827.RegularFunctions
    3import Lax709149.Types
    4
    5/-!
    6---
    7title: Regular functions on types under string representation
    8type: definition
    9---
    10A type-to-type function f:A→Bf : A \to B is *regular under string representation*
    11(Definition C.5.2 of *Transducers*) if there is a regular string-to-string
    12function f′f' over the eight-letter alphabet making the square commute: f′f'
    13maps the representation of aa to the representation of f(a)f(a), for every
    14a∈Aa \in A. Rational functions between types are defined in the same way. Nothing
    15is required of f′f' on the strings that represent no element.
    16
    17# Formalization notes
    18
    19`IsRegularUnderRepr f` asks for a regular `f' : List Sym8 → List Sym8` with
    20`f' (A.repr a) = B.repr (f a)` for all `a`; `IsRationalUnderRepr` for a rational
    21one.
    22-/
    23
    24namespace Lax709149.RegularUnderRepresentation
    25
    26open Lax132576.RationalFunctions Lax916827.RegularFunctions Lax709149.Types
    27
    28/-- A type-to-type function is regular under string representation if a regular
    29string-to-string function maps the representation of `a` to the representation
    30of `f a`. -/
    31def IsRegularUnderRepr {A B : Ty} (f : A.Elt → B.Elt) : Prop :=
    32 ∃ f' : List Sym8 → List Sym8, IsRegularFun f' ∧ ∀ a : A.Elt, f' (A.repr a) = B.repr (f a)
    33
    34/-- A type-to-type function is rational under string representation. -/
    35def IsRationalUnderRepr {A B : Ty} (f : A.Elt → B.Elt) : Prop :=
    36 ∃ f' : List Sym8 → List Sym8, IsRationalFun f' ∧ ∀ a : A.Elt, f' (A.repr a) = B.repr (f a)
    37
    38end Lax709149.RegularUnderRepresentation
    39
    Formalization notes

    IsRegularUnderReprfIsRegularUnderRepr f asks for a regular f′:ListSym8→ListSym8f' : List Sym8 → List Sym8 with f′(A.repra)=B.repr(fa)f' (A.repr a) = B.repr (f a) for all aa; IsRationalUnderReprIsRationalUnderRepr for a rational one.

    Discussion

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

    Loading discussion…