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

    The counit of the coalgebra

    Equations
      Instances For

        The comultiplication of the coalgebra

        Equations
          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.

              Equations
                Instances For

                  An arbitrarily chosen representation.

                  Equations
                    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) :

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

                          Equations
                            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] :
                            Equations
                              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)
                              Equations
                                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)
                                Equations
                                  @[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 : ι) :
                                  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.

                                  Equations
                                    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)
                                    noncomputable instance Finsupp.instCoalgebraStruct (R : Type u) (ι : Type v) (A : Type w) [CommSemiring R] [AddCommMonoid A] [Module R A] [CoalgebraStruct R A] :
                                    Equations
                                      @[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) :
                                      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.

                                      Equations
                                        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)
                                        Equations
                                          @[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) :
                                          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.

                                          Equations
                                            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.

                                            Equations
                                              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.

                                                Equations
                                                  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.