@@ -222,7 +222,79 @@ end MonoidalCategory
222222open scoped MonoidalCategory
223223open MonoidalCategory
224224
225- variable (C : Type u) [𝒞 : Category.{v} C] [MonoidalCategory C]
225+ variable {C : Type u} [𝒞 : Category.{v} C] [MonoidalCategory C]
226+
227+ namespace MonoidalCategory
228+
229+ @ [reassoc (attr := simp)]
230+ theorem whiskerLeft_hom_inv (X : C) {Y Z : C} (f : Y ≅ Z) :
231+ X ◁ f.hom ≫ X ◁ f.inv = 𝟙 (X ⊗ Y) := by
232+ simp [← id_tensorHom, ← tensor_comp]
233+
234+ @ [reassoc (attr := simp)]
235+ theorem hom_inv_whiskerRight {X Y : C} (f : X ≅ Y) (Z : C) :
236+ f.hom ▷ Z ≫ f.inv ▷ Z = 𝟙 (X ⊗ Z) := by
237+ simp [← tensorHom_id, ← tensor_comp]
238+
239+ @ [reassoc (attr := simp)]
240+ theorem whiskerLeft_inv_hom (X : C) {Y Z : C} (f : Y ≅ Z) :
241+ X ◁ f.inv ≫ X ◁ f.hom = 𝟙 (X ⊗ Z) := by
242+ simp [← id_tensorHom, ← tensor_comp]
243+
244+ @ [reassoc (attr := simp)]
245+ theorem inv_hom_whiskerRight {X Y : C} (f : X ≅ Y) (Z : C) :
246+ f.inv ▷ Z ≫ f.hom ▷ Z = 𝟙 (Y ⊗ Z) := by
247+ simp [← tensorHom_id, ← tensor_comp]
248+
249+ @ [reassoc (attr := simp)]
250+ theorem whiskerLeft_hom_inv' (X : C) {Y Z : C} (f : Y ⟶ Z) [IsIso f] :
251+ X ◁ f ≫ X ◁ inv f = 𝟙 (X ⊗ Y) := by
252+ simp [← id_tensorHom, ← tensor_comp]
253+
254+ @ [reassoc (attr := simp)]
255+ theorem hom_inv_whiskerRight' {X Y : C} (f : X ⟶ Y) [IsIso f] (Z : C) :
256+ f ▷ Z ≫ inv f ▷ Z = 𝟙 (X ⊗ Z) := by
257+ simp [← tensorHom_id, ← tensor_comp]
258+
259+ @ [reassoc (attr := simp)]
260+ theorem whiskerLeft_inv_hom' (X : C) {Y Z : C} (f : Y ⟶ Z) [IsIso f] :
261+ X ◁ inv f ≫ X ◁ f = 𝟙 (X ⊗ Z) := by
262+ simp [← id_tensorHom, ← tensor_comp]
263+
264+ @ [reassoc (attr := simp)]
265+ theorem inv_hom_whiskerRight' {X Y : C} (f : X ⟶ Y) [IsIso f] (Z : C) :
266+ inv f ▷ Z ≫ f ▷ Z = 𝟙 (Y ⊗ Z) := by
267+ simp [← tensorHom_id, ← tensor_comp]
268+
269+ /-- The left whiskering of an isomorphism is an isomorphism. -/
270+ @[simps]
271+ def whiskerLeftIso (X : C) {Y Z : C} (f : Y ≅ Z) : X ⊗ Y ≅ X ⊗ Z where
272+ hom := X ◁ f.hom
273+ inv := X ◁ f.inv
274+
275+ instance whiskerLeft_isIso (X : C) {Y Z : C} (f : Y ⟶ Z) [IsIso f] : IsIso (X ◁ f) :=
276+ IsIso.of_iso (whiskerLeftIso X (asIso f))
277+
278+ @[simp]
279+ theorem inv_whiskerLeft (X : C) {Y Z : C} (f : Y ⟶ Z) [IsIso f] :
280+ inv (X ◁ f) = X ◁ inv f := by
281+ aesop_cat
282+
283+ /-- The right whiskering of an isomorphism is an isomorphism. -/
284+ @[simps!]
285+ def whiskerRightIso {X Y : C} (f : X ≅ Y) (Z : C) : X ⊗ Z ≅ Y ⊗ Z where
286+ hom := f.hom ▷ Z
287+ inv := f.inv ▷ Z
288+
289+ instance whiskerRight_isIso {X Y : C} (f : X ⟶ Y) (Z : C) [IsIso f] : IsIso (f ▷ Z) :=
290+ IsIso.of_iso (whiskerRightIso (asIso f) Z)
291+
292+ @[simp]
293+ theorem inv_whiskerRight {X Y : C} (f : X ⟶ Y) (Z : C) [IsIso f] :
294+ inv (f ▷ Z) = inv f ▷ Z := by
295+ aesop_cat
296+
297+ end MonoidalCategory
226298
227299/-- The tensor product of two isomorphisms is an isomorphism. -/
228300@[simps]
0 commit comments