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

Lax709149.RegularUnderRepresentation

Regular functions on types under string representation

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.

    Concept map

    Proven claimDefinitionThis conceptRelated conceptA → B: B builds on A

    In the paper

    Definition

    A type-to-type function f:ABf : A \to B is regular under string representation (Definition C.5.2 of Transducers) if there is a regular string-to-string function ff' over the eight-letter alphabet making the square commute: ff' maps the representation of aa to the representation of f(a)f(a), for every aAa \in A. Rational functions between types are defined in the same way. Nothing is required of ff' on the strings that represent no element.

    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:ABf : A \to B is *regular under string representation*
    11(Definition C.5.2 of *Transducers*) if there is a regular string-to-string
    12function ff' over the eight-letter alphabet making the square commute: ff'
    13maps the representation of aa to the representation of f(a)f(a), for every
    14aAa \in A. Rational functions between types are defined in the same way. Nothing
    15is required of ff' 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:ListSym8ListSym8f' : 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.

    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…