Documentation

Mathlib.RingTheory.Bialgebra.Basic

Bialgebras #

In this file we define Bialgebras.

Main definitions #

Implementation notes #

Rather than the "obvious" axiom ∀ a b, counit (a * b) = counit a * counit b, the far more convoluted mul_compr₂_counit is used as a structure field; this says that the corresponding two maps A →ₗ[R] A →ₗ[R] R are equal; a similar trick is used for comultiplication as well. An alternative constructor Bialgebra.mk' is provided with the more easily-readable axioms. The argument for using the more convoluted axioms is that in practice there is evidence that they will be easier to prove (especially when dealing with things like tensor products of bialgebras). This does make the definition more surprising to mathematicians, however mathlib is no stranger to definitions which are surprising to mathematicians -- see for example its definition of a group. Note that this design decision is also compatible with that of Coalgebra. The lengthy docstring for these convoluted fields attempts to explain what is going on.

The constructor Bialgebra.ofAlgHom is dual to the default constructor: For R is a commutative semiring and A a R-algebra, it consumes the counit and comultiplication as algebra homomorphisms that satisfy the coalgebra axioms to define a bialgebra structure on A.

References #

Tags #

bialgebra

class Bialgebra (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] extends Algebra R A, Coalgebra R A :
Type (max u v)

A bialgebra over a commutative (semi)ring R is both an algebra and a coalgebra over R, such that the counit and comultiplication are algebra morphisms.

Instances
    noncomputable def Bialgebra.mk' (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] [C : Coalgebra R A] (counit_one : CoalgebraStruct.counit 1 = 1) (counit_mul : ∀ {a b : A}, CoalgebraStruct.counit (a * b) = CoalgebraStruct.counit a * CoalgebraStruct.counit b) (comul_one : CoalgebraStruct.comul 1 = 1) (comul_mul : ∀ {a b : A}, CoalgebraStruct.comul (a * b) = CoalgebraStruct.comul a * CoalgebraStruct.comul b) :

    If R is a field (or even a commutative semiring) and A is an R-algebra with a coalgebra structure, then Bialgebra.mk' consumes proofs that the counit and comultiplication preserve the identity and multiplication, and produces a bialgebra structure on A.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      noncomputable def Bialgebra.counitAlgHom (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Bialgebra R A] :

      counitAlgHom R A is the counit of the R-bialgebra A, as an R-algebra map.

      Equations
      Instances For
        @[simp]
        noncomputable def Bialgebra.comulAlgHom (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Bialgebra R A] :

        comulAlgHom R A is the comultiplication of the R-bialgebra A, as an R-algebra map.

        Equations
        Instances For
          @[simp]
          theorem Bialgebra.comulAlgHom_apply (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Bialgebra R A] (a : A) :
          @[simp]
          theorem Bialgebra.counit_algebraMap {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Bialgebra R A] (r : R) :
          @[simp]
          theorem Bialgebra.comul_algebraMap {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Bialgebra R A] (r : R) :
          @[simp]
          theorem Bialgebra.counit_natCast {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Bialgebra R A] (n : ) :
          @[simp]
          theorem Bialgebra.comul_natCast {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Bialgebra R A] (n : ) :
          @[simp]
          theorem Bialgebra.counit_pow {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Bialgebra R A] (a : A) (n : ) :
          @[simp]
          theorem Bialgebra.comul_pow {R : Type u} {A : Type v} [CommSemiring R] [Semiring A] [Bialgebra R A] (a : A) (n : ) :
          noncomputable instance CommSemiring.toBialgebra (R : Type u) [CommSemiring R] :

          Every commutative (semi)ring is a bialgebra over itself

          Equations
          @[reducible, inline]
          noncomputable abbrev Bialgebra.ofAlgHom {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [Algebra R A] (comul : A →ₐ[R] TensorProduct R A A) (counit : A →ₐ[R] R) (h_coassoc : (↑(Algebra.TensorProduct.assoc R A A A)).comp ((Algebra.TensorProduct.map comul (AlgHom.id R A)).comp comul) = (Algebra.TensorProduct.map (AlgHom.id R A) comul).comp comul) (h_rTensor : (Algebra.TensorProduct.map counit (AlgHom.id R A)).comp comul = (Algebra.TensorProduct.lid R A).symm) (h_lTensor : (Algebra.TensorProduct.map (AlgHom.id R A) counit).comp comul = (Algebra.TensorProduct.rid R R A).symm) :

          If R is a commutative semiring and A is an R-algebra, then Bialgebra.ofAlgHom consumes the counit and comultiplication as algebra homomorphisms that satisfy the coalgebra axioms to define a bialgebra structure on A.

          Equations
          Instances For