The monoidal closed structure on Module R
. #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
def
Module.monoidal_closed_hom_equiv
{R : Type u}
[comm_ring R]
(M N P : Module R) :
((category_theory.monoidal_category.tensor_left M).obj N ⟶ P) ≃ (N ⟶ ((category_theory.linear_coyoneda R (Module R)).obj (opposite.op M)).obj P)
Auxiliary definition for the monoidal_closed
instance on Module R
.
(This is only a separate definition in order to speed up typechecking. )
Equations
- M.monoidal_closed_hom_equiv N P = {to_fun := λ (f : (category_theory.monoidal_category.tensor_left M).obj N ⟶ P), (tensor_product.mk R ↥N ↥M).compr₂ ((β_ N M).hom ≫ f), inv_fun := λ (f : N ⟶ ((category_theory.linear_coyoneda R (Module R)).obj (opposite.op M)).obj P), (β_ M N).hom ≫ tensor_product.lift f, left_inv := _, right_inv := _}
@[simp]
theorem
Module.monoidal_closed_hom_equiv_symm_apply
{R : Type u}
[comm_ring R]
(M N P : Module R)
(f : N ⟶ ((category_theory.linear_coyoneda R (Module R)).obj (opposite.op M)).obj P) :
⇑((M.monoidal_closed_hom_equiv N P).symm) f = (β_ M N).hom ≫ tensor_product.lift f
@[simp]
theorem
Module.monoidal_closed_hom_equiv_apply
{R : Type u}
[comm_ring R]
(M N P : Module R)
(f : (category_theory.monoidal_category.tensor_left M).obj N ⟶ P) :
⇑(M.monoidal_closed_hom_equiv N P) f = (tensor_product.mk R ↥N ↥M).compr₂ ((β_ N M).hom ≫ f)
@[protected, instance]
Equations
- Module.category_theory.monoidal_closed = {closed' := λ (M : Module R), {is_adj := {right := (category_theory.linear_coyoneda R (Module R)).obj (opposite.op M), adj := category_theory.adjunction.mk_of_hom_equiv {hom_equiv := λ (N P : Module R), M.monoidal_closed_hom_equiv N P, hom_equiv_naturality_left_symm' := _, hom_equiv_naturality_right' := _}}}}
theorem
Module.ihom_ev_app
{R : Type u}
[comm_ring R]
(M N : Module R) :
(category_theory.ihom.ev M).app N = ⇑(tensor_product.uncurry R ↥M (↥M →ₗ[R] ↥N) ↥N) linear_map.id.flip
Describes the counit of the adjunction M ⊗ - ⊣ Hom(M, -)
. Given an R
-module N
this
should give a map M ⊗ Hom(M, N) ⟶ N
, so we flip the order of the arguments in the identity map
Hom(M, N) ⟶ (M ⟶ N)
and uncurry the resulting map M ⟶ Hom(M, N) ⟶ N.
theorem
Module.ihom_coev_app
{R : Type u}
[comm_ring R]
(M N : Module R) :
(category_theory.ihom.coev M).app N = (tensor_product.mk R ↥(opposite.unop (opposite.op M)) ↥((𝟭 (Module R)).obj N)).flip
Describes the unit of the adjunction M ⊗ - ⊣ Hom(M, -)
. Given an R
-module N
this should
define a map N ⟶ Hom(M, M ⊗ N)
, which is given by flipping the arguments in the natural
R
-bilinear map M ⟶ N ⟶ M ⊗ N
.
theorem
Module.monoidal_closed_pre_app
{R : Type u}
[comm_ring R]
{M N : Module R}
(P : Module R)
(f : N ⟶ M) :
(category_theory.monoidal_closed.pre f).app P = linear_map.lcomp R ↥P f