Documentation

Mathlib.RingTheory.Coalgebra.Equiv

Isomorphisms of R-coalgebras #

This file defines bundled isomorphisms of R-coalgebras. We largely mirror the basic API of Mathlib/Algebra/Module/Equiv/Defs.lean.

Main definitions #

Notation #

structure CoalgEquiv (R : Type u_5) [CommSemiring R] (A : Type u_6) (B : Type u_7) [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] extends A →ₗc[R] B, A ≃ₗ[R] B :
Type (max u_6 u_7)

An equivalence of coalgebras is an invertible coalgebra homomorphism.

Instances For

    An equivalence of coalgebras is an invertible coalgebra homomorphism.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      class CoalgEquivClass (F : Type u_5) (R : outParam (Type u_6)) (A : outParam (Type u_7)) (B : outParam (Type u_8)) [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] [EquivLike F A B] extends CoalgHomClass F R A B, SemilinearEquivClass F (RingHom.id R) A B :

      CoalgEquivClass F R A B asserts F is a type of bundled coalgebra equivalences from A to B.

      Instances
        def CoalgEquivClass.toCoalgEquiv {F : Type u_5} {R : Type u_6} {A : Type u_7} {B : Type u_8} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] [EquivLike F A B] [CoalgEquivClass F R A B] (f : F) :

        Reinterpret an element of a type of coalgebra equivalences as a coalgebra equivalence.

        Equations
        • ↑f = { toCoalgHom := ↑f, invFun := (↑f).invFun, left_inv := ⋯, right_inv := ⋯ }
        Instances For
          @[implicit_reducible]
          instance CoalgEquivClass.instCoeToCoalgEquiv {F : Type u_5} {R : Type u_6} {A : Type u_7} {B : Type u_8} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] [EquivLike F A B] [CoalgEquivClass F R A B] :

          Reinterpret an element of a type of coalgebra equivalences as a coalgebra equivalence.

          Equations
          def CoalgEquiv.toEquiv {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] :
          (A ≃ₗc[R] B) → A ≃ B

          The equivalence of types underlying a coalgebra equivalence.

          Equations
          Instances For
            @[simp]
            theorem CoalgEquiv.toEquiv_inj {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] {e₁ e₂ : A ≃ₗc[R] B} :
            e₁.toEquiv = e₂.toEquiv ↔ e₁ = e₂
            @[implicit_reducible]
            instance CoalgEquiv.instEquivLike {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] :
            EquivLike (A ≃ₗc[R] B) A B
            Equations
            @[implicit_reducible]
            instance CoalgEquiv.instFunLike {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] :
            FunLike (A ≃ₗc[R] B) A B
            Equations
            @[simp]
            theorem CoalgEquiv.toCoalgHom_inj {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] {e₁ e₂ : A ≃ₗc[R] B} :
            ↑e₁ = ↑e₂ ↔ e₁ = e₂
            @[simp]
            theorem CoalgEquiv.coe_mk {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] {f : A → B} {h : ∀ (x y : A), f (x + y) = f x + f y} {h₀ : ∀ (m : R) (x : A), { toFun := f, map_add' := h }.toFun (m • x) = (RingHom.id R) m • { toFun := f, map_add' := h }.toFun x} {h₁ : CoalgebraStruct.counit ∘ₗ { toFun := f, map_add' := h, map_smul' := h₀ } = CoalgebraStruct.counit} {h₂ : TensorProduct.map { toFun := f, map_add' := h, map_smul' := h₀ } { toFun := f, map_add' := h, map_smul' := h₀ } ∘ₗ CoalgebraStruct.comul = CoalgebraStruct.comul ∘ₗ { toFun := f, map_add' := h, map_smul' := h₀ }} {h₃ : B → A} {h₄ : Function.LeftInverse h₃ { toFun := f, map_add' := h, map_smul' := h₀, counit_comp := h₁, map_comp_comul := h₂ }.toFun} {h₅ : Function.RightInverse h₃ { toFun := f, map_add' := h, map_smul' := h₀, counit_comp := h₁, map_comp_comul := h₂ }.toFun} :
            ⇑{ toFun := f, map_add' := h, map_smul' := h₀, counit_comp := h₁, map_comp_comul := h₂, invFun := h₃, left_inv := h₄, right_inv := h₅ } = f
            @[simp]
            theorem CoalgEquiv.coe_coe {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₗc[R] B) :
            ⇑↑e = ⇑e
            @[simp]
            theorem CoalgEquiv.toLinearEquiv_eq_coe {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (f : A ≃ₗc[R] B) :
            @[simp]
            theorem CoalgEquiv.toCoalgHom_eq_coe {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (f : A ≃ₗc[R] B) :
            f.toCoalgHom = ↑f
            @[simp]
            theorem CoalgEquiv.coe_toLinearEquiv {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₗc[R] B) :
            ⇑↑e = ⇑e
            @[simp]
            theorem CoalgEquiv.coe_toCoalgHom {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₗc[R] B) :
            ⇑↑e = ⇑e
            theorem CoalgEquiv.toLinearEquiv_toLinearMap {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₗc[R] B) :
            ↑↑e = ↑↑e
            theorem CoalgEquiv.ext {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] {e e' : A ≃ₗc[R] B} (h : ∀ (x : A), e x = e' x) :
            e = e'
            theorem CoalgEquiv.ext_iff {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] {e e' : A ≃ₗc[R] B} :
            e = e' ↔ ∀ (x : A), e x = e' x
            theorem CoalgEquiv.congr_arg {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] {e : A ≃ₗc[R] B} {x x' : A} :
            x = x' → e x = e x'
            theorem CoalgEquiv.congr_fun {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] {e e' : A ≃ₗc[R] B} (h : e = e') (x : A) :
            e x = e' x
            def CoalgEquiv.symm {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₗc[R] B) :

            Coalgebra equivalences are symmetric.

            Equations
            • e.symm = { toLinearMap := ↑(↑e).symm, counit_comp := ⋯, map_comp_comul := ⋯, invFun := (↑e).symm.invFun, left_inv := ⋯, right_inv := ⋯ }
            Instances For
              def CoalgEquiv.Simps.apply {R : Type u_5} [CommSemiring R] {α : Type u_6} {β : Type u_7} [AddCommMonoid α] [AddCommMonoid β] [Module R α] [Module R β] [CoalgebraStruct R α] [CoalgebraStruct R β] (f : α ≃ₗc[R] β) :
              α → β

              See Note [custom simps projection]

              Equations
              Instances For
                def CoalgEquiv.Simps.symm_apply {R : Type u_5} [CommSemiring R] {A : Type u_6} {B : Type u_7} [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₗc[R] B) :
                B → A

                See Note [custom simps projection]

                Equations
                Instances For
                  def CoalgEquiv.refl (R : Type u_1) (A : Type u_2) [CommSemiring R] [AddCommMonoid A] [Module R A] [CoalgebraStruct R A] :

                  The identity map is a coalgebra equivalence.

                  Equations
                  Instances For
                    @[simp]
                    theorem CoalgEquiv.refl_apply (R : Type u_1) (A : Type u_2) [CommSemiring R] [AddCommMonoid A] [Module R A] [CoalgebraStruct R A] (a : A) :
                    (refl R A) a = a
                    @[simp]
                    theorem CoalgEquiv.refl_symm_apply (R : Type u_1) (A : Type u_2) [CommSemiring R] [AddCommMonoid A] [Module R A] [CoalgebraStruct R A] (a✝ : A) :
                    (refl R A).symm a✝ = a✝
                    @[simp]
                    theorem CoalgEquiv.refl_toLinearEquiv {R : Type u_1} {A : Type u_2} [CommSemiring R] [AddCommMonoid A] [Module R A] [CoalgebraStruct R A] :
                    ↑(refl R A) = LinearEquiv.refl R A
                    @[simp]
                    theorem CoalgEquiv.refl_toCoalgHom {R : Type u_1} {A : Type u_2} [CommSemiring R] [AddCommMonoid A] [Module R A] [CoalgebraStruct R A] :
                    ↑(refl R A) = CoalgHom.id R A
                    @[simp]
                    theorem CoalgEquiv.symm_toLinearEquiv {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₗc[R] B) :
                    ↑e.symm = (↑e).symm
                    theorem CoalgEquiv.coe_symm_toLinearEquiv {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₗc[R] B) :
                    ⇑(↑e).symm = ⇑e.symm
                    @[simp]
                    theorem CoalgEquiv.symm_toCoalgHom {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₗc[R] B) :
                    ↑↑e.symm = ↑(↑e).symm
                    @[simp]
                    theorem CoalgEquiv.symm_apply_apply {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₗc[R] B) (x : A) :
                    e.symm (e x) = x
                    @[simp]
                    theorem CoalgEquiv.apply_symm_apply {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₗc[R] B) (x : B) :
                    e (e.symm x) = x
                    @[simp]
                    theorem CoalgEquiv.invFun_eq_symm {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₗc[R] B) :
                    e.invFun = ⇑e.symm
                    theorem CoalgEquiv.coe_toEquiv_symm {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₗc[R] B) :
                    @[simp]
                    theorem CoalgEquiv.toEquiv_symm {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₗc[R] B) :
                    @[simp]
                    theorem CoalgEquiv.coe_toEquiv {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₗc[R] B) :
                    ⇑e.toEquiv = ⇑e
                    @[simp]
                    theorem CoalgEquiv.coe_symm_toEquiv {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (e : A ≃ₗc[R] B) :
                    ⇑e.toEquiv.symm = ⇑e.symm
                    def CoalgEquiv.trans {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [AddCommMonoid C] [Module R A] [Module R B] [Module R C] [CoalgebraStruct R A] [CoalgebraStruct R B] [CoalgebraStruct R C] (e₁₂ : A ≃ₗc[R] B) (e₂₃ : B ≃ₗc[R] C) :

                    Coalgebra equivalences are transitive.

                    Equations
                    Instances For
                      @[simp]
                      theorem CoalgEquiv.trans_apply {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [AddCommMonoid C] [Module R A] [Module R B] [Module R C] [CoalgebraStruct R A] [CoalgebraStruct R B] [CoalgebraStruct R C] (e₁₂ : A ≃ₗc[R] B) (e₂₃ : B ≃ₗc[R] C) (a✝ : A) :
                      (e₁₂.trans e₂₃) a✝ = e₂₃ (e₁₂ a✝)
                      @[simp]
                      theorem CoalgEquiv.trans_symm_apply {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [AddCommMonoid C] [Module R A] [Module R B] [Module R C] [CoalgebraStruct R A] [CoalgebraStruct R B] [CoalgebraStruct R C] (e₁₂ : A ≃ₗc[R] B) (e₂₃ : B ≃ₗc[R] C) (a✝ : C) :
                      (e₁₂.trans e₂₃).symm a✝ = (↑e₁₂).symm ((↑e₂₃).symm a✝)
                      theorem CoalgEquiv.trans_toLinearEquiv {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [AddCommMonoid C] [Module R A] [Module R B] [Module R C] [CoalgebraStruct R A] [CoalgebraStruct R B] [CoalgebraStruct R C] {e₁₂ : A ≃ₗc[R] B} {e₂₃ : B ≃ₗc[R] C} :
                      ↑(e₁₂.trans e₂₃) = ↑e₁₂ ≪≫ₗ ↑e₂₃
                      @[simp]
                      theorem CoalgEquiv.trans_toCoalgHom {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [AddCommMonoid C] [Module R A] [Module R B] [Module R C] [CoalgebraStruct R A] [CoalgebraStruct R B] [CoalgebraStruct R C] {e₁₂ : A ≃ₗc[R] B} {e₂₃ : B ≃ₗc[R] C} :
                      ↑(e₁₂.trans e₂₃) = e₂₃.comp ↑e₁₂
                      @[simp]
                      theorem CoalgEquiv.coe_toEquiv_trans {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [AddCommMonoid C] [Module R A] [Module R B] [Module R C] [CoalgebraStruct R A] [CoalgebraStruct R B] [CoalgebraStruct R C] {e₁₂ : A ≃ₗc[R] B} {e₂₃ : B ≃ₗc[R] C} :
                      (↑e₁₂).trans ↑e₂₃ = ↑(e₁₂.trans e₂₃)
                      def CoalgEquiv.ofCoalgHom {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (f : A →ₗc[R] B) (g : B →ₗc[R] A) (h₁ : f.comp g = CoalgHom.id R B) (h₂ : g.comp f = CoalgHom.id R A) :

                      If a coalgebra morphism has an inverse, it is a coalgebra isomorphism.

                      Equations
                      • CoalgEquiv.ofCoalgHom f g h₁ h₂ = { toFun := ⇑f, map_add' := ⋯, map_smul' := ⋯, counit_comp := ⋯, map_comp_comul := ⋯, invFun := ⇑g, left_inv := ⋯, right_inv := ⋯ }
                      Instances For
                        @[simp]
                        theorem CoalgEquiv.coe_ofCoalgHom {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (f : A →ₗc[R] B) (g : B →ₗc[R] A) (h₁ : f.comp g = CoalgHom.id R B) (h₂ : g.comp f = CoalgHom.id R A) :
                        ↑(ofCoalgHom f g h₁ h₂) = f
                        theorem CoalgEquiv.ofCoalgHom_symm {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] (f : A →ₗc[R] B) (g : B →ₗc[R] A) (h₁ : f.comp g = CoalgHom.id R B) (h₂ : g.comp f = CoalgHom.id R A) :
                        (ofCoalgHom f g h₁ h₂).symm = ofCoalgHom g f h₂ h₁
                        noncomputable def CoalgEquiv.ofBijective {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] {f : A →ₗc[R] B} (hf : Function.Bijective ⇑f) :

                        Promotes a bijective coalgebra homomorphism to a coalgebra equivalence.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[simp]
                          theorem CoalgEquiv.ofBijective_apply {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] {f : A →ₗc[R] B} (hf : Function.Bijective ⇑f) (a : A) :
                          (ofBijective hf) a = f a
                          @[simp]
                          theorem CoalgEquiv.coe_ofBijective {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R A] [Module R B] [CoalgebraStruct R A] [CoalgebraStruct R B] {f : A →ₗc[R] B} (hf : Function.Bijective ⇑f) :
                          ⇑(ofBijective hf) = ⇑f
                          @[reducible]
                          def CoalgEquiv.toCoalgebra {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [AddCommMonoid A] [Module R A] [Coalgebra R A] [AddCommMonoid B] [Module R B] [CoalgebraStruct R B] (f : A ≃ₗc[R] B) :

                          Let A be an R-coalgebra and let B be an R-module with a CoalgebraStruct. A linear equivalence A ≃ₗ[R] B that respects the CoalgebraStructs defines an R-coalgebra structure on B.

                          Equations
                          • f.toCoalgebra = { toCoalgebraStruct := inst✝, coassoc := ⋯, rTensor_counit_comp_comul := ⋯, lTensor_counit_comp_comul := ⋯ }
                          Instances For