@@ -434,22 +434,29 @@ variable
434434namespace Functor
435435variable {F F' : C ⥤ D} [F.Monoidal] [F'.Monoidal] {G : D ⥤ E} [G.Monoidal]
436436
437+ open scoped Obj
438+
439+ /-- The image of a group object under a monoidal functor is a group object. -/
440+ abbrev grpObjObj {G : C} [GrpObj G] : GrpObj (F.obj G) where
441+ inv := F.map ι
442+ left_inv := by
443+ simp [← Functor.map_id, Functor.Monoidal.lift_μ_assoc,
444+ Functor.Monoidal.toUnit_ε_assoc, ← Functor.map_comp]
445+ right_inv := by
446+ simp [← Functor.map_id, Functor.Monoidal.lift_μ_assoc,
447+ Functor.Monoidal.toUnit_ε_assoc, ← Functor.map_comp]
448+
449+ scoped [Obj] attribute [instance] CategoryTheory.Functor.grpObjObj
450+
451+ @[reassoc, simp] lemma obj.ι_def {G : C} [GrpObj G] : ι[F.obj G] = F.map ι := rfl
452+
437453open Monoidal
438454
439455variable (F) in
440456/-- A finite-product-preserving functor takes group objects to group objects. -/
441457@[simps!]
442458def mapGrp : Grp_ C ⥤ Grp_ D where
443- obj A :=
444- { F.mapMon.obj A.toMon with
445- grp :=
446- { inv := F.map ι[A.X]
447- left_inv := by
448- simp [← Functor.map_id, Functor.Monoidal.lift_μ_assoc,
449- Functor.Monoidal.toUnit_ε_assoc, ← Functor.map_comp]
450- right_inv := by
451- simp [← Functor.map_id, Functor.Monoidal.lift_μ_assoc,
452- Functor.Monoidal.toUnit_ε_assoc, ← Functor.map_comp] } }
459+ obj A := .mk (F.obj A.X)
453460 map f := F.mapMon.map f
454461
455462protected instance Faithful.mapGrp [F.Faithful] : F.mapGrp.Faithful where
0 commit comments