Documentation

AxiomaticGW.Frobenius.Coalgebra

The coalgebra carried by a commutative Frobenius algebra #

For a finite-free commutative Frobenius algebra, the inverse metric tensor C = F.casimir defines a comultiplication by

Δ(a) = (a ⊗ 1) C.

This file proves that multiplication and comultiplication satisfy the Frobenius relation and that Δ, together with the original Frobenius functional, gives a cocommutative coalgebra. The construction is explicit in the Frobenius object F; it is deliberately not installed as a global typeclass instance, because the same algebra may carry several Frobenius functionals.

Reading the Lean notation #

theorem AxiomaticGW.CommFrobeniusAlgebra.tensorEndEquiv_includeLeft_mul {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] [Module.Free R A] [Module.Finite R A] (F : CommFrobeniusAlgebra R A) (a : A) (t : TensorProduct R A A) (x : A) :

Multiplying the first tensor leg by a moves the input of the associated endomorphism from x to a * x.

Multiplying the second tensor leg by a multiplies the output of the associated endomorphism by a.

The Casimir tensor is balanced over the algebra: (a ⊗ 1) * C = (1 ⊗ a) * C.

This tensor identity is the main computational form of invariance of the Frobenius pairing.

noncomputable def AxiomaticGW.CommFrobeniusAlgebra.comul {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] [Module.Free R A] [Module.Finite R A] (F : CommFrobeniusAlgebra R A) :

The canonical Frobenius comultiplication Δ(a) = (a ⊗ 1) * C.

Equations
Instances For
    theorem AxiomaticGW.CommFrobeniusAlgebra.comul_apply {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] [Module.Free R A] [Module.Finite R A] (F : CommFrobeniusAlgebra R A) (a : A) :
    F.comul a = a ⊗ₜ[R] 1 * F.casimir

    Evaluation formula using the first leg of the Casimir tensor.

    Equivalent evaluation formula using the second leg.

    @[simp]

    The Casimir tensor is the comultiplication of the algebra unit.

    @[simp]
    theorem AxiomaticGW.CommFrobeniusAlgebra.tensorEndEquiv_comul {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] [Module.Free R A] [Module.Finite R A] (F : CommFrobeniusAlgebra R A) (a x : A) :
    (F.pairing.tensorEndEquiv (F.comul a)) x = a * x

    Contracting Δ(a) with the metric gives multiplication by a.

    theorem AxiomaticGW.CommFrobeniusAlgebra.comul_mul {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] [Module.Free R A] [Module.Finite R A] (F : CommFrobeniusAlgebra R A) (a b : A) :
    F.comul (a * b) = a ⊗ₜ[R] 1 * F.comul b

    Left-linearity of comultiplication, one half of the Frobenius relation.

    theorem AxiomaticGW.CommFrobeniusAlgebra.comul_mul_right {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] [Module.Free R A] [Module.Finite R A] (F : CommFrobeniusAlgebra R A) (a b : A) :
    F.comul (a * b) = 1 ⊗ₜ[R] b * F.comul a

    Right-linearity of comultiplication, the other half of the Frobenius relation.

    theorem AxiomaticGW.CommFrobeniusAlgebra.comm_mul_tmul_left {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] (a : A) (t : TensorProduct R A A) :
    (TensorProduct.comm R A A) (a ⊗ₜ[R] 1 * t) = 1 ⊗ₜ[R] a * (TensorProduct.comm R A A) t

    Swapping the tensor factors in a product swaps each factor.

    @[simp]
    theorem AxiomaticGW.CommFrobeniusAlgebra.comm_comul {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] [Module.Free R A] [Module.Finite R A] (F : CommFrobeniusAlgebra R A) (a : A) :
    (TensorProduct.comm R A A) (F.comul a) = F.comul a

    The canonical Frobenius comultiplication is cocommutative.

    Applying the left tensor unitor after contracting the first leg with the counit is the same as contracting the tensor against 1 via the metric.

    @[simp]

    The first counit law, written in mathlib's explicit-unitor convention.

    Applying the right tensor unitor after contracting the second leg with the counit can be computed by first swapping the tensor.

    @[simp]

    The second counit law.

    theorem AxiomaticGW.CommFrobeniusAlgebra.mul'_includeLeft_mul {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] (a : A) (t : TensorProduct R A A) :
    (LinearMap.mul' R A) (a ⊗ₜ[R] 1 * t) = a * (LinearMap.mul' R A) t

    Multiplying a fixed element into the first tensor leg commutes with multiplying the two tensor legs together.

    @[simp]
    theorem AxiomaticGW.CommFrobeniusAlgebra.mul'_comul {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] [Module.Free R A] [Module.Finite R A] (F : CommFrobeniusAlgebra R A) (a : A) :

    Multiplication after comultiplication is multiplication by the handle element: μ(Δ(a)) = a * E.

    Coassociativity #

    To compare tensors with three factors, we use the same perfect pairing to turn the first tensor factor into the input of a linear map. This avoids a basis calculation: the resulting map is an equivalence, so equality after contraction proves equality of the original tensors.

    noncomputable def AxiomaticGW.CommFrobeniusAlgebra.tensorModuleHomEquiv {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] [Module.Free R A] [Module.Finite R A] (F : CommFrobeniusAlgebra R A) (W : Type u_3) [AddCommGroup W] [Module R W] :

    Contract the first factor of A ⊗ W, for an arbitrary target module W. The earlier tensorEndEquiv is the special case W = A.

    Equations
    Instances For
      @[simp]
      theorem AxiomaticGW.CommFrobeniusAlgebra.tensorModuleHomEquiv_tmul {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] [Module.Free R A] [Module.Finite R A] (F : CommFrobeniusAlgebra R A) {W : Type u_3} [AddCommGroup W] [Module R W] (a x : A) (w : W) :
      ((F.tensorModuleHomEquiv W) (a ⊗ₜ[R] w)) x = (F.pairing.form a) x w

      Evaluation of tensorModuleHomEquiv on a pure tensor.

      Contracting the first leg after reassociating (A ⊗ A) ⊗ A contracts the first leg of the inner two-tensor.

      After applying Δ to the first tensor factor, contraction turns it into multiplication by the contracted vector.

      After applying Δ to the second tensor factor, contraction may be moved through Δ by linearity.

      Pointwise coassociativity of the canonical comultiplication.

      Coassociativity as an equality of linear maps, in exactly the form required by mathlib's Coalgebra structure.

      Interoperability with mathlib's coalgebra API #

      @[reducible]

      The comultiplication and original Frobenius functional, bundled as mathlib's preliminary CoalgebraStruct.

      Equations
      Instances For
        @[reducible]
        noncomputable def AxiomaticGW.CommFrobeniusAlgebra.toCoalgebra {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [Algebra R A] [Module.Free R A] [Module.Finite R A] (F : CommFrobeniusAlgebra R A) :

        A finite-free commutative Frobenius algebra canonically determines a coalgebra.

        This is an explicit definition rather than a global instance. To use mathlib's coalgebra notation and lemmas locally, write

        letI : Coalgebra R A := F.toCoalgebra
        
        Equations
        • F.toCoalgebra = { comul := F.comul, counit := F.counit, coassoc := , rTensor_counit_comp_comul := , lTensor_counit_comp_comul := }
        Instances For

          The coalgebra obtained from a commutative Frobenius algebra is cocommutative.

          This declaration is designed for local use immediately after installing F.toCoalgebra.