@@ -156,6 +156,16 @@ lemma whiskerLeft_μ_comp_μ (X Y Z : C) :
156156 μ F X Y ▷ F.obj Z ≫ μ F (X ⊗ Y) Z ≫ F.map (α_ X Y Z).hom := by
157157 rw [associativity, Iso.inv_hom_id_assoc]
158158
159+ /-- Copy of a lax monoidal structure with new `ε` and `μ` fields equal to the old ones.
160+
161+ This is useful to fix definitional equalities. -/
162+ @[implicit_reducible]
163+ def copy {F : C ⥤ D} (hF : F.LaxMonoidal) (ε' : 𝟙_ D ⟶ F.obj (𝟙_ C))
164+ (μ' : ∀ X Y : C, F.obj X ⊗ F.obj Y ⟶ F.obj (X ⊗ Y))
165+ (hε : ε' = ε F := by cat_disch) (hμ : μ' = μ F := by cat_disch) : F.LaxMonoidal where
166+ ε := ε'
167+ μ := μ'
168+
159169end
160170
161171section
@@ -330,6 +340,17 @@ lemma δ_comp_whiskerLeft_δ (X Y Z : C) :
330340
331341end
332342
343+ /-- Copy of an oplax monoidal structure on a functor `F` with new `η` and `δ` fields equal to the
344+ old ones.
345+
346+ This is useful to fix definitional equalities. -/
347+ @[implicit_reducible]
348+ def copy {F : C ⥤ D} (hF : F.OplaxMonoidal) (η' : F.obj (𝟙_ C) ⟶ 𝟙_ D)
349+ (δ' : ∀ X Y : C, F.obj (X ⊗ Y) ⟶ F.obj X ⊗ F.obj Y)
350+ (hη : η' = η F := by cat_disch) (hδ : δ' = δ F := by cat_disch) : F.OplaxMonoidal where
351+ η := η'
352+ δ := δ'
353+
333354@[simps]
334355instance id : (𝟭 C).OplaxMonoidal where
335356 η := 𝟙 _
@@ -577,6 +598,19 @@ lemma toOplaxMonoidal_injective : Function.Injective
577598 · exact congr(($eq).η)
578599 · exact congr(($eq).δ)
579600
601+ /-- Copy of a monoidal structure on a functor `F` with new `ε`, `μ`, `η` and `δ` fields equal to the
602+ old ones.
603+
604+ This is useful to fix definitional equalities. -/
605+ @[implicit_reducible]
606+ def copy {F : C ⥤ D} (hF : F.Monoidal) (ε' : 𝟙_ D ⟶ F.obj (𝟙_ C))
607+ (μ' : ∀ X Y : C, F.obj X ⊗ F.obj Y ⟶ F.obj (X ⊗ Y)) (η' : F.obj (𝟙_ C) ⟶ 𝟙_ D)
608+ (δ' : ∀ X Y : C, F.obj (X ⊗ Y) ⟶ F.obj X ⊗ F.obj Y)
609+ (hε : ε' = ε F := by cat_disch) (hμ : μ' = μ F := by cat_disch)
610+ (hη : η' = η F := by cat_disch) (hδ : δ' = δ F := by cat_disch) : F.Monoidal where
611+ __ := hF.toLaxMonoidal.copy ε' μ' hε hμ
612+ __ := hF.toOplaxMonoidal.copy η' δ' hη hδ
613+
580614end Monoidal
581615
582616variable (F : C ⥤ D)
0 commit comments