Documentation

Mathlib.RingTheory.Coalgebra.Basic

Coalgebras #

In this file we define Coalgebra, and provide instances for:

References #

class CoalgebraStruct (R : Type u) (A : Type v) [CommSemiring R] [AddCommMonoid A] [Module R A] :
Type (max u v)

Data fields for Coalgebra, to allow API to be constructed before proving Coalgebra.coassoc.

See Coalgebra for documentation.

Instances
    def RingTheory.LinearMap.termε :
    Lean.ParserDescr

    The counit of the coalgebra

    Instances For
      def RingTheory.LinearMap.termδ :
      Lean.ParserDescr

      The comultiplication of the coalgebra

      Instances For
        structure Coalgebra.Repr (R : Type u) {A : Type v} [CommSemiring R] [AddCommMonoid A] [Module R A] [CoalgebraStruct R A] (a : A) :
        Type (max (u_1 + 1) v)

        A representation of an element a of a coalgebra A is a finite sum of pure tensors ∑ xᵢ ⊗ yᵢ that is equal to comul a.

        • ι : Type u_1

          the indexing type of a representation of comul a

        • index : Finset self.ι

          the finite indexing set of a representation of comul a

        • left : self.ιA

          the first coordinate of a representation of comul a

        • right : self.ιA

          the second coordinate of a representation of comul a

        • eq : iself.index, self.left i ⊗ₜ[R] self.right i = comul a

          comul a is equal to a finite sum of some pure tensors

        Instances For
          noncomputable def Coalgebra.Repr.arbitrary (R : Type u) {A : Type v} [CommSemiring R] [AddCommMonoid A] [Module R A] [CoalgebraStruct R A] (a : A) :
          Repr R a

          An arbitrarily chosen representation.

          Instances For
            def Coalgebra.termℛ :
            Lean.ParserDescr

            An arbitrarily chosen representation.

            Instances For
              class Coalgebra (R : Type u) (A : Type v) [CommSemiring R] [AddCommMonoid A] [Module R A] extends CoalgebraStruct R A :
              Type (max u v)

              A coalgebra over a commutative (semi)ring R is an R-module equipped with a coassociative comultiplication Δ and a counit ε obeying the left and right counitality laws.

              Instances
                @[simp]
                theorem Coalgebra.sum_counit_tmul_eq {R : Type u} {A : Type v} [CommSemiring R] [AddCommMonoid A] [Module R A] [Coalgebra R A] {a : A} (repr : Repr R a) :
                irepr.index, counit (repr.left i) ⊗ₜ[R] repr.right i = 1 ⊗ₜ[R] a
                @[simp]
                theorem Coalgebra.sum_tmul_counit_eq {R : Type u} {A : Type v} [CommSemiring R] [AddCommMonoid A] [Module R A] [Coalgebra R A] {a : A} (repr : Repr R a) :
                irepr.index, repr.left i ⊗ₜ[R] counit (repr.right i) = a ⊗ₜ[R] 1
                theorem Coalgebra.sum_tmul_tmul_eq {R : Type u} {A : Type v} [CommSemiring R] [AddCommMonoid A] [Module R A] [Coalgebra R A] {a : A} (repr : Repr R a) (a₁ : (i : repr.ι) → Repr R (repr.left i)) (a₂ : (i : repr.ι) → Repr R (repr.right i)) :
                irepr.index, j(a₁ i).index, (a₁ i).left j ⊗ₜ[R] ((a₁ i).right j ⊗ₜ[R] repr.right i) = irepr.index, j(a₂ i).index, repr.left i ⊗ₜ[R] ((a₂ i).left j ⊗ₜ[R] (a₂ i).right j)
                @[simp]
                theorem Coalgebra.sum_counit_tmul_map_eq {R : Type u} {A : Type v} [CommSemiring R] [AddCommMonoid A] [Module R A] [Coalgebra R A] {B : Type u_1} [AddCommMonoid B] [Module R B] {F : Type u_2} [FunLike F A B] [LinearMapClass F R A B] (f : F) (a : A) {repr : Repr R a} :
                irepr.index, counit (repr.left i) ⊗ₜ[R] f (repr.right i) = 1 ⊗ₜ[R] f a
                @[simp]
                theorem Coalgebra.sum_map_tmul_counit_eq {R : Type u} {A : Type v} [CommSemiring R] [AddCommMonoid A] [Module R A] [Coalgebra R A] {B : Type u_1} [AddCommMonoid B] [Module R B] {F : Type u_2} [FunLike F A B] [LinearMapClass F R A B] (f : F) (a : A) {repr : Repr R a} :
                irepr.index, f (repr.left i) ⊗ₜ[R] counit (repr.right i) = f a ⊗ₜ[R] 1
                theorem Coalgebra.sum_map_tmul_tmul_eq {R : Type u} {A : Type v} [CommSemiring R] [AddCommMonoid A] [Module R A] [Coalgebra R A] {B : Type u_1} [AddCommMonoid B] [Module R B] {F : Type u_2} [FunLike F A B] [LinearMapClass F R A B] (f g h : F) (a : A) {repr : Repr R a} {a₁ : (i : repr.ι) → Repr R (repr.left i)} {a₂ : (i : repr.ι) → Repr R (repr.right i)} :
                irepr.index, j(a₂ i).index, f (repr.left i) ⊗ₜ[R] (g ((a₂ i).left j) ⊗ₜ[R] h ((a₂ i).right j)) = irepr.index, j(a₁ i).index, f ((a₁ i).left j) ⊗ₜ[R] (g ((a₁ i).right j) ⊗ₜ[R] h (repr.right i))
                theorem Coalgebra.sum_counit_smul {R : Type u} {A : Type v} [CommSemiring R] [AddCommMonoid A] [Module R A] [Coalgebra R A] {a : A} (𝓡 : Repr R a) :
                x𝓡.index, counit (𝓡.left x) 𝓡.right x = a
                class Coalgebra.IsCocomm (R : Type u) (A : Type v) [CommSemiring R] [AddCommMonoid A] [Module R A] [Coalgebra R A] :

                A coalgebra A is cocommutative if its comultiplication δ : A → A ⊗ A commutes with the swapping β : A ⊗ A ≃ A ⊗ A of the factors in the tensor product.

                Instances
                  @[simp]
                  theorem Coalgebra.comm_comul (R : Type u) {A : Type v} [CommSemiring R] [AddCommMonoid A] [Module R A] [Coalgebra R A] [IsCocomm R A] (a : A) :
                  @[implicit_reducible]

                  Every commutative (semi)ring is a coalgebra over itself, with Δ r = 1 ⊗ₜ r.

                  @[implicit_reducible]
                  instance Prod.instCoalgebraStruct (R : Type u) (A : Type v) (B : Type w) [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [Coalgebra R A] [Coalgebra R B] :
                  CoalgebraStruct R (A × B)
                  @[implicit_reducible]
                  instance Prod.instCoalgebra (R : Type u) (A : Type v) (B : Type w) [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [Coalgebra R A] [Coalgebra R B] :
                  Coalgebra R (A × B)
                  @[implicit_reducible]
                  instance DFinsupp.instCoalgebraStruct (R : Type u) (ι : Type v) (A : ιType w) [DecidableEq ι] [CommSemiring R] [(i : ι) → AddCommMonoid (A i)] [(i : ι) → Module R (A i)] [(i : ι) → CoalgebraStruct R (A i)] :
                  CoalgebraStruct R (Π₀ (i : ι), A i)
                  @[simp]
                  theorem DFinsupp.comul_single (R : Type u) (ι : Type v) (A : ιType w) [DecidableEq ι] [CommSemiring R] [(i : ι) → AddCommMonoid (A i)] [(i : ι) → Module R (A i)] [(i : ι) → CoalgebraStruct R (A i)] (i : ι) (a : A i) :
                  @[simp]
                  theorem DFinsupp.counit_single (R : Type u) (ι : Type v) (A : ιType w) [DecidableEq ι] [CommSemiring R] [(i : ι) → AddCommMonoid (A i)] [(i : ι) → Module R (A i)] [(i : ι) → CoalgebraStruct R (A i)] (i : ι) (a : A i) :
                  theorem DFinsupp.comul_comp_lsingle (R : Type u) (ι : Type v) (A : ιType w) [DecidableEq ι] [CommSemiring R] [(i : ι) → AddCommMonoid (A i)] [(i : ι) → Module R (A i)] [(i : ι) → CoalgebraStruct R (A i)] (i : ι) :
                  theorem DFinsupp.comul_comp_lapply (R : Type u) (ι : Type v) (A : ιType w) [DecidableEq ι] [CommSemiring R] [(i : ι) → AddCommMonoid (A i)] [(i : ι) → Module R (A i)] [(i : ι) → CoalgebraStruct R (A i)] (i : ι) :
                  @[simp]
                  theorem DFinsupp.counit_comp_lsingle (R : Type u) (ι : Type v) (A : ιType w) [DecidableEq ι] [CommSemiring R] [(i : ι) → AddCommMonoid (A i)] [(i : ι) → Module R (A i)] [(i : ι) → CoalgebraStruct R (A i)] (i : ι) :
                  @[implicit_reducible]
                  instance DFinsupp.instCoalgebra (R : Type u) (ι : Type v) (A : ιType w) [DecidableEq ι] [CommSemiring R] [(i : ι) → AddCommMonoid (A i)] [(i : ι) → Module R (A i)] [(i : ι) → Coalgebra R (A i)] :
                  Coalgebra R (Π₀ (i : ι), A i)

                  The R-module whose elements are dependent functions (i : ι) → A i which are zero on all but finitely many elements of ι has a coalgebra structure.

                  The coproduct Δ is given by Δ(fᵢ a) = fᵢ a₁ ⊗ fᵢ a₂ where Δ(a) = a₁ ⊗ a₂ and the counit ε by ε(fᵢ a) = ε(a), where fᵢ a is the function sending i to a and all other elements of ι to zero.

                  instance DFinsupp.instIsCocomm (R : Type u) (ι : Type v) (A : ιType w) [DecidableEq ι] [CommSemiring R] [(i : ι) → AddCommMonoid (A i)] [(i : ι) → Module R (A i)] [(i : ι) → Coalgebra R (A i)] [∀ (i : ι), Coalgebra.IsCocomm R (A i)] :
                  Coalgebra.IsCocomm R (Π₀ (i : ι), A i)
                  @[implicit_reducible]
                  noncomputable instance Finsupp.instCoalgebraStruct (R : Type u) (ι : Type v) (A : Type w) [CommSemiring R] [AddCommMonoid A] [Module R A] [CoalgebraStruct R A] :
                  @[simp]
                  theorem Finsupp.counit_single (R : Type u) (ι : Type v) (A : Type w) [CommSemiring R] [AddCommMonoid A] [Module R A] [CoalgebraStruct R A] (i : ι) (a : A) :
                  @[implicit_reducible]
                  noncomputable instance Finsupp.instCoalgebra (R : Type u) (ι : Type v) (A : Type w) [CommSemiring R] [AddCommMonoid A] [Module R A] [Coalgebra R A] :
                  Coalgebra R (ι →₀ A)

                  The R-module whose elements are functions ι → A which are zero on all but finitely many elements of ι has a coalgebra structure. The coproduct Δ is given by Δ(fᵢ a) = fᵢ a₁ ⊗ fᵢ a₂ where Δ(a) = a₁ ⊗ a₂ and the counit ε by ε(fᵢ a) = ε(a), where fᵢ a is the function sending i to a and all other elements of ι to zero.

                  @[implicit_reducible]
                  instance Pi.instCoalgebraStruct {R : Type u_1} {n : Type u_2} [CommSemiring R] [Fintype n] [DecidableEq n] {A : nType u_3} [(i : n) → AddCommMonoid (A i)] [(i : n) → Module R (A i)] [(i : n) → CoalgebraStruct R (A i)] :
                  CoalgebraStruct R ((i : n) → A i)
                  @[simp]
                  theorem Pi.comul_single {R : Type u_1} {n : Type u_2} [CommSemiring R] [Fintype n] [DecidableEq n] {A : nType u_3} [(i : n) → AddCommMonoid (A i)] [(i : n) → Module R (A i)] [(i : n) → CoalgebraStruct R (A i)] (i : n) (a : A i) :
                  @[simp]
                  theorem Pi.counit_single {R : Type u_1} {n : Type u_2} [CommSemiring R] [Fintype n] [DecidableEq n] {A : nType u_3} [(i : n) → AddCommMonoid (A i)] [(i : n) → Module R (A i)] [(i : n) → CoalgebraStruct R (A i)] (i : n) (a : A i) :
                  theorem Pi.comul_comp_single {R : Type u_1} {n : Type u_2} [CommSemiring R] [Fintype n] [DecidableEq n] {A : nType u_3} [(i : n) → AddCommMonoid (A i)] [(i : n) → Module R (A i)] [(i : n) → CoalgebraStruct R (A i)] (i : n) :
                  theorem Pi.comul_comp_proj {R : Type u_1} {n : Type u_2} [CommSemiring R] [Fintype n] [DecidableEq n] {A : nType u_3} [(i : n) → AddCommMonoid (A i)] [(i : n) → Module R (A i)] [(i : n) → CoalgebraStruct R (A i)] (i : n) :
                  @[simp]
                  theorem Pi.counit_comp_single {R : Type u_1} {n : Type u_2} [CommSemiring R] [Fintype n] [DecidableEq n] {A : nType u_3} [(i : n) → AddCommMonoid (A i)] [(i : n) → Module R (A i)] [(i : n) → CoalgebraStruct R (A i)] (i : n) :
                  theorem Pi.counit_comp_dFinsuppCoeFnLinearMap {R : Type u_1} {n : Type u_2} [CommSemiring R] [Fintype n] [DecidableEq n] {A : nType u_3} [(i : n) → AddCommMonoid (A i)] [(i : n) → Module R (A i)] [(i : n) → CoalgebraStruct R (A i)] :
                  @[simp]
                  theorem Pi.counit_coe_dFinsupp {R : Type u_1} {n : Type u_2} [CommSemiring R] [Fintype n] [DecidableEq n] {A : nType u_3} [(i : n) → AddCommMonoid (A i)] [(i : n) → Module R (A i)] [(i : n) → CoalgebraStruct R (A i)] (x : Π₀ (i : n), A i) :
                  @[simp]
                  theorem Pi.comul_coe_dFinsupp {R : Type u_1} {n : Type u_2} [CommSemiring R] [Fintype n] [DecidableEq n] {A : nType u_3} [(i : n) → AddCommMonoid (A i)] [(i : n) → Module R (A i)] [(i : n) → CoalgebraStruct R (A i)] (x : Π₀ (i : n), A i) :
                  @[simp]
                  theorem Pi.counit_coe_finsupp {R : Type u_1} {n : Type u_2} [CommSemiring R] [Fintype n] [DecidableEq n] {M : Type u_4} [AddCommMonoid M] [Module R M] [CoalgebraStruct R M] (x : n →₀ M) :
                  @[implicit_reducible]
                  instance Pi.instCoalgebra {R : Type u_1} {n : Type u_2} [CommSemiring R] [Fintype n] [DecidableEq n] {A : nType u_3} [(i : n) → AddCommMonoid (A i)] [(i : n) → Module R (A i)] [(i : n) → Coalgebra R (A i)] :
                  Coalgebra R ((i : n) → A i)

                  The R-module whose elements are functions Π i, A i for finite n has a coalgebra structure. The coproduct Δ is given by Δ(fᵢ a) = fᵢ a₁ ⊗ fᵢ a₂ where Δ(a) = a₁ ⊗ a₂ and the counit ε by ε(fᵢ a) = ε(a), where fᵢ a is the function sending i to a and all other elements of ι to zero.

                  instance Pi.instIsCocomm {R : Type u_1} {n : Type u_2} [CommSemiring R] [Fintype n] [DecidableEq n] {A : nType u_3} [(i : n) → AddCommMonoid (A i)] [(i : n) → Module R (A i)] [(i : n) → Coalgebra R (A i)] [∀ (i : n), Coalgebra.IsCocomm R (A i)] :
                  Coalgebra.IsCocomm R ((i : n) → A i)
                  @[reducible, inline]
                  abbrev Equiv.coalgebraStruct (R : Type u_1) {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid B] [Module R B] [CoalgebraStruct R B] (e : A B) :

                  Transfer CoalgebraStruct across an Equiv.

                  Instances For
                    @[reducible, inline]
                    abbrev Equiv.coalgebra (R : Type u_1) {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid B] [Module R B] [Coalgebra R B] (e : A B) :

                    Transfer Coalgebra across an Equiv.

                    Instances For
                      theorem Equiv.coalgebraIsCocomm (R : Type u_1) {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid B] [Module R B] [Coalgebra R B] [Coalgebra.IsCocomm R B] (e : A B) :

                      Transfer Coalgebra.IsCocomm across an Equiv.