File: Mathlib/CategoryTheory/Monoidal/Center.lean

full_name: CategoryTheory.HalfBraiding.monoidal
code: /-- A half-braiding on `X : C` is a family of isomorphisms `X ⊗ U ≅ U ⊗ X`,
monoidally natural in `U : C`.

Thinking of `C` as a 2-category with a single `0`-morphism, these are the same as natural
transformations (in the pseudo- sense) of the identity 2-functor on `C`, which send the unique
`0`-morphism to `X`.
-/
-- @[nolint has_nonempty_instance] -- Porting note(#5171): This linter does not exist yet.
structure HalfBraiding (X : C) where
  β : ∀ U, X ⊗ U ≅ U ⊗ X
  monoidal : ∀ U U', (β (U ⊗ U')).hom =
      (α_ _ _ _).inv ≫
        ((β U).hom ▷ U') ≫ (α_ _ _ _).hom ≫ (U ◁ (β U').hom) ≫ (α_ _ _ _).inv := by
    aesop_cat
  naturality : ∀ {U U'} (f : U ⟶ U'), (X ◁ f) ≫ (β U').hom = (β U).hom ≫ (f ▷ X) := by
    aesop_cat
goal: (self.β (U ⊗ U')).hom = (α_ X U U').inv ≫ (self.β U).hom ▷ U' ≫ (α_ U X U').hom ≫ U ◁ (self.β U').hom ≫ (α_ U U' X).inv

full_name: CategoryTheory.HalfBraiding
code: /-- A half-braiding on `X : C` is a family of isomorphisms `X ⊗ U ≅ U ⊗ X`,
monoidally natural in `U : C`.

Thinking of `C` as a 2-category with a single `0`-morphism, these are the same as natural
transformations (in the pseudo- sense) of the identity 2-functor on `C`, which send the unique
`0`-morphism to `X`.
-/
-- @[nolint has_nonempty_instance] -- Porting note(#5171): This linter does not exist yet.
structure HalfBraiding (X : C) where
  β : ∀ U, X ⊗ U ≅ U ⊗ X
  monoidal : ∀ U U', (β (U ⊗ U')).hom =
      (α_ _ _ _).inv ≫
        ((β U).hom ▷ U') ≫ (α_ _ _ _).hom ≫ (U ◁ (β U').hom) ≫ (α_ _ _ _).inv := by
    aesop_cat
  naturality : ∀ {U U'} (f : U ⟶ U'), (X ◁ f) ≫ (β U').hom = (β U).hom ≫ (f ▷ X) := by
    aesop_cat
goal: Type (max u₁ v₁)

full_name: CategoryTheory.HalfBraiding.β
code: /-- A half-braiding on `X : C` is a family of isomorphisms `X ⊗ U ≅ U ⊗ X`,
monoidally natural in `U : C`.

Thinking of `C` as a 2-category with a single `0`-morphism, these are the same as natural
transformations (in the pseudo- sense) of the identity 2-functor on `C`, which send the unique
`0`-morphism to `X`.
-/
-- @[nolint has_nonempty_instance] -- Porting note(#5171): This linter does not exist yet.
structure HalfBraiding (X : C) where
  β : ∀ U, X ⊗ U ≅ U ⊗ X
  monoidal : ∀ U U', (β (U ⊗ U')).hom =
      (α_ _ _ _).inv ≫
        ((β U).hom ▷ U') ≫ (α_ _ _ _).hom ≫ (U ◁ (β U').hom) ≫ (α_ _ _ _).inv := by
    aesop_cat
  naturality : ∀ {U U'} (f : U ⟶ U'), (X ◁ f) ≫ (β U').hom = (β U).hom ≫ (f ▷ X) := by
    aesop_cat
goal: X ⊗ U ≅ U ⊗ X

full_name: CategoryTheory.HalfBraiding.naturality
code: /-- A half-braiding on `X : C` is a family of isomorphisms `X ⊗ U ≅ U ⊗ X`,
monoidally natural in `U : C`.

Thinking of `C` as a 2-category with a single `0`-morphism, these are the same as natural
transformations (in the pseudo- sense) of the identity 2-functor on `C`, which send the unique
`0`-morphism to `X`.
-/
-- @[nolint has_nonempty_instance] -- Porting note(#5171): This linter does not exist yet.
structure HalfBraiding (X : C) where
  β : ∀ U, X ⊗ U ≅ U ⊗ X
  monoidal : ∀ U U', (β (U ⊗ U')).hom =
      (α_ _ _ _).inv ≫
        ((β U).hom ▷ U') ≫ (α_ _ _ _).hom ≫ (U ◁ (β U').hom) ≫ (α_ _ _ _).inv := by
    aesop_cat
  naturality : ∀ {U U'} (f : U ⟶ U'), (X ◁ f) ≫ (β U').hom = (β U).hom ≫ (f ▷ X) := by
    aesop_cat
goal: X ◁ f ≫ (self.β U').hom = (self.β U).hom ≫ f ▷ X

full_name: CategoryTheory.Center
code: /-- The Drinfeld center of a monoidal category `C` has as objects pairs `⟨X, b⟩`, where `X : C`
and `b` is a half-braiding on `X`.
-/
-- @[nolint has_nonempty_instance] -- Porting note(#5171): This linter does not exist yet.
def Center 
goal: Type (max u₁ u₁ v₁)

full_name: CategoryTheory.Center.Hom.comm
code: /-- A morphism in the Drinfeld center of `C`. -/
-- Porting note(#5171): linter not ported yet
@[ext] -- @[nolint has_nonempty_instance]
structure Hom (X Y : Center C) where
  f : X.1 ⟶ Y.1
  comm : ∀ U, (f ▷ U) ≫ (Y.2.β U).hom = (X.2.β U).hom ≫ (U ◁ f) := by aesop_cat
goal: self.f ▷ U ≫ (Y.snd.β U).hom = (X.snd.β U).hom ≫ U ◁ self.f

full_name: CategoryTheory.Center.Hom
code: /-- A morphism in the Drinfeld center of `C`. -/
-- Porting note(#5171): linter not ported yet
@[ext] -- @[nolint has_nonempty_instance]
structure Hom (X Y : Center C) where
  f : X.1 ⟶ Y.1
  comm : ∀ U, (f ▷ U) ≫ (Y.2.β U).hom = (X.2.β U).hom ≫ (U ◁ f) := by aesop_cat
goal: Type v₁

full_name: CategoryTheory.Center.Hom.f
code: /-- A morphism in the Drinfeld center of `C`. -/
-- Porting note(#5171): linter not ported yet
@[ext] -- @[nolint has_nonempty_instance]
structure Hom (X Y : Center C) where
  f : X.1 ⟶ Y.1
  comm : ∀ U, (f ▷ U) ≫ (Y.2.β U).hom = (X.2.β U).hom ≫ (U ◁ f) := by aesop_cat
goal: X.fst ⟶ Y.fst

full_name: CategoryTheory.Center.instQuiver
code: instance : Quiver (Center C) 
goal: Quiver (CategoryTheory.Center C)

full_name: CategoryTheory.Center.ext
code: @[ext]
theorem ext {X Y : Center C} (f g : X ⟶ Y) (w : f.f = g.f) : f = g 
goal: f = g

full_name: CategoryTheory.Center.instCategory
code: instance : Category (Center C) 
goal: CategoryTheory.Category.{v₁, max u₁ v₁} (CategoryTheory.Center C)

full_name: CategoryTheory.Center.id_f
code: @[simp]
theorem id_f (X : Center C) : Hom.f (𝟙 X) = 𝟙 X.1 
goal: (𝟙 X).f = 𝟙 X.fst

full_name: CategoryTheory.Center.comp_f
code: @[simp]
theorem comp_f {X Y Z : Center C} (f : X ⟶ Y) (g : Y ⟶ Z) : (f ≫ g).f = f.f ≫ g.f 
goal: (f ≫ g).f = f.f ≫ g.f

full_name: CategoryTheory.Center.isoMk
code: /-- Construct an isomorphism in the Drinfeld center from
a morphism whose underlying morphism is an isomorphism.
-/
@[simps]
def isoMk {X Y : Center C} (f : X ⟶ Y) [IsIso f.f] : X ≅ Y 
goal: X ≅ Y

full_name: CategoryTheory.Center.isoMk_inv_f
code: /-- Construct an isomorphism in the Drinfeld center from
a morphism whose underlying morphism is an isomorphism.
-/
@[simps]
def isoMk {X Y : Center C} (f : X ⟶ Y) [IsIso f.f] : X ≅ Y 
goal: (CategoryTheory.Center.isoMk f).inv.f = CategoryTheory.inv f.f

full_name: CategoryTheory.Center.isoMk_hom
code: /-- Construct an isomorphism in the Drinfeld center from
a morphism whose underlying morphism is an isomorphism.
-/
@[simps]
def isoMk {X Y : Center C} (f : X ⟶ Y) [IsIso f.f] : X ≅ Y 
goal: (CategoryTheory.Center.isoMk f).hom = f

full_name: CategoryTheory.Center.isIso_of_f_isIso
code: instance isIso_of_f_isIso {X Y : Center C} (f : X ⟶ Y) [IsIso f.f] : IsIso f 
goal: CategoryTheory.IsIso f

full_name: CategoryTheory.Center.tensorObj_fst
code: /-- Auxiliary definition for the `MonoidalCategory` instance on `Center C`. -/
@[simps]
def tensorObj (X Y : Center C) : Center C 
goal: (X.tensorObj Y).fst = X.fst ⊗ Y.fst

full_name: CategoryTheory.Center.tensorObj
code: /-- Auxiliary definition for the `MonoidalCategory` instance on `Center C`. -/
@[simps]
def tensorObj (X Y : Center C) : Center C 
goal: CategoryTheory.Center C

full_name: CategoryTheory.Center.tensorObj_snd_β
code: /-- Auxiliary definition for the `MonoidalCategory` instance on `Center C`. -/
@[simps]
def tensorObj (X Y : Center C) : Center C 
goal: (X.tensorObj Y).snd.β U =
  α_ X.fst Y.fst U ≪≫
    CategoryTheory.MonoidalCategory.whiskerLeftIso X.fst (Y.snd.β U) ≪≫
      (α_ X.fst U Y.fst).symm ≪≫ CategoryTheory.MonoidalCategory.whiskerRightIso (X.snd.β U) Y.fst ≪≫ α_ U X.fst Y.fst

full_name: CategoryTheory.Center.whiskerLeft_comm
code: @[reassoc]
theorem whiskerLeft_comm (X : Center C) {Y₁ Y₂ : Center C} (f : Y₁ ⟶ Y₂) (U : C) :
    (X.1 ◁ f.f) ▷ U ≫ ((tensorObj X Y₂).2.β U).hom =
      ((tensorObj X Y₁).2.β U).hom ≫ U ◁ X.1 ◁ f.f 
goal: (X.fst ◁ f.f) ▷ U ≫ ((X.tensorObj Y₂).snd.β U).hom = ((X.tensorObj Y₁).snd.β U).hom ≫ U ◁ X.fst ◁ f.f

full_name: CategoryTheory.Center.whiskerLeft
code: /-- Auxiliary definition for the `MonoidalCategory` instance on `Center C`. -/
def whiskerLeft (X : Center C) {Y₁ Y₂ : Center C} (f : Y₁ ⟶ Y₂) :
    tensorObj X Y₁ ⟶ tensorObj X Y₂ 
goal: X.tensorObj Y₁ ⟶ X.tensorObj Y₂

full_name: CategoryTheory.Center.whiskerRight_comm
code: @[reassoc]
theorem whiskerRight_comm {X₁ X₂ : Center C} (f : X₁ ⟶ X₂) (Y : Center C) (U : C) :
    f.f ▷ Y.1 ▷ U ≫ ((tensorObj X₂ Y).2.β U).hom =
      ((tensorObj X₁ Y).2.β U).hom ≫ U ◁ f.f ▷ Y.1 
goal: f.f ▷ Y.fst ▷ U ≫ ((X₂.tensorObj Y).snd.β U).hom = ((X₁.tensorObj Y).snd.β U).hom ≫ U ◁ f.f ▷ Y.fst

full_name: CategoryTheory.Center.whiskerRight
code: /-- Auxiliary definition for the `MonoidalCategory` instance on `Center C`. -/
def whiskerRight {X₁ X₂ : Center C} (f : X₁ ⟶ X₂) (Y : Center C) :
    tensorObj X₁ Y ⟶ tensorObj X₂ Y 
goal: X₁.tensorObj Y ⟶ X₂.tensorObj Y

full_name: CategoryTheory.Center.tensorHom
code: /-- Auxiliary definition for the `MonoidalCategory` instance on `Center C`. -/
@[simps]
def tensorHom {X₁ Y₁ X₂ Y₂ : Center C} (f : X₁ ⟶ Y₁) (g : X₂ ⟶ Y₂) :
    tensorObj X₁ X₂ ⟶ tensorObj Y₁ Y₂ 
goal: X₁.tensorObj X₂ ⟶ Y₁.tensorObj Y₂

full_name: CategoryTheory.Center.tensorHom_f
code: /-- Auxiliary definition for the `MonoidalCategory` instance on `Center C`. -/
@[simps]
def tensorHom {X₁ Y₁ X₂ Y₂ : Center C} (f : X₁ ⟶ Y₁) (g : X₂ ⟶ Y₂) :
    tensorObj X₁ X₂ ⟶ tensorObj Y₁ Y₂ 
goal: (CategoryTheory.Center.tensorHom f g).f = f.f ⊗ g.f

full_name: CategoryTheory.Center.tensorUnit_snd_β
code: /-- Auxiliary definition for the `MonoidalCategory` instance on `Center C`. -/
@[simps]
def tensorUnit : Center C 
goal: CategoryTheory.Center.tensorUnit.snd.β U = λ_ U ≪≫ (ρ_ U).symm

full_name: CategoryTheory.Center.tensorUnit
code: /-- Auxiliary definition for the `MonoidalCategory` instance on `Center C`. -/
@[simps]
def tensorUnit : Center C 
goal: CategoryTheory.Center C

full_name: CategoryTheory.Center.tensorUnit_fst
code: /-- Auxiliary definition for the `MonoidalCategory` instance on `Center C`. -/
@[simps]
def tensorUnit : Center C 
goal: CategoryTheory.Center.tensorUnit.fst = 𝟙_ C

full_name: CategoryTheory.Center.associator
code: /-- Auxiliary definition for the `MonoidalCategory` instance on `Center C`. -/
def associator (X Y Z : Center C) : tensorObj (tensorObj X Y) Z ≅ tensorObj X (tensorObj Y Z) 
goal: (X.tensorObj Y).tensorObj Z ≅ X.tensorObj (Y.tensorObj Z)

full_name: CategoryTheory.Center.leftUnitor
code: /-- Auxiliary definition for the `MonoidalCategory` instance on `Center C`. -/
def leftUnitor (X : Center C) : tensorObj tensorUnit X ≅ X 
goal: CategoryTheory.Center.tensorUnit.tensorObj X ≅ X

full_name: CategoryTheory.Center.rightUnitor
code: /-- Auxiliary definition for the `MonoidalCategory` instance on `Center C`. -/
def rightUnitor (X : Center C) : tensorObj X tensorUnit ≅ X 
goal: X.tensorObj CategoryTheory.Center.tensorUnit ≅ X

full_name: CategoryTheory.Center.instMonoidalCategory
code: instance : MonoidalCategory (Center C) 
goal: CategoryTheory.MonoidalCategory (CategoryTheory.Center C)

full_name: CategoryTheory.Center.tensor_fst
code: @[simp]
theorem tensor_fst (X Y : Center C) : (X ⊗ Y).1 = X.1 ⊗ Y.1 
goal: (X ⊗ Y).fst = X.fst ⊗ Y.fst

full_name: CategoryTheory.Center.tensor_β
code: @[simp]
theorem tensor_β (X Y : Center C) (U : C) :
    (X ⊗ Y).2.β U =
      α_ _ _ _ ≪≫
        (whiskerLeftIso X.1 (Y.2.β U)) ≪≫ (α_ _ _ _).symm ≪≫
          (whiskerRightIso (X.2.β U) Y.1) ≪≫ α_ _ _ _ 
goal: (X ⊗ Y).snd.β U =
  α_ X.fst Y.fst U ≪≫
    CategoryTheory.MonoidalCategory.whiskerLeftIso X.fst (Y.snd.β U) ≪≫
      (α_ X.fst U Y.fst).symm ≪≫ CategoryTheory.MonoidalCategory.whiskerRightIso (X.snd.β U) Y.fst ≪≫ α_ U X.fst Y.fst

full_name: CategoryTheory.Center.whiskerLeft_f
code: @[simp]
theorem whiskerLeft_f (X : Center C) {Y₁ Y₂ : Center C} (f : Y₁ ⟶ Y₂) : (X ◁ f).f = X.1 ◁ f.f 
goal: (X ◁ f).f = X.fst ◁ f.f

full_name: CategoryTheory.Center.whiskerRight_f
code: @[simp]
theorem whiskerRight_f {X₁ X₂ : Center C} (f : X₁ ⟶ X₂) (Y : Center C) : (f ▷ Y).f = f.f ▷ Y.1 
goal: (f ▷ Y).f = f.f ▷ Y.fst

full_name: CategoryTheory.Center.tensor_f
code: @[simp]
theorem tensor_f {X₁ Y₁ X₂ Y₂ : Center C} (f : X₁ ⟶ Y₁) (g : X₂ ⟶ Y₂) : (f ⊗ g).f = f.f ⊗ g.f 
goal: (f ⊗ g).f = f.f ⊗ g.f

full_name: CategoryTheory.Center.tensorUnit_β
code: @[simp]
theorem tensorUnit_β (U : C) : (𝟙_ (Center C)).2.β U = λ_ U ≪≫ (ρ_ U).symm 
goal: (𝟙_ (CategoryTheory.Center C)).snd.β U = λ_ U ≪≫ (ρ_ U).symm

full_name: CategoryTheory.Center.associator_hom_f
code: @[simp]
theorem associator_hom_f (X Y Z : Center C) : Hom.f (α_ X Y Z).hom = (α_ X.1 Y.1 Z.1).hom 
goal: (α_ X Y Z).hom.f = (α_ X.fst Y.fst Z.fst).hom

full_name: CategoryTheory.Center.associator_inv_f
code: @[simp]
theorem associator_inv_f (X Y Z : Center C) : Hom.f (α_ X Y Z).inv = (α_ X.1 Y.1 Z.1).inv 
goal: (α_ X Y Z).inv.f = (α_ X.fst Y.fst Z.fst).inv

full_name: CategoryTheory.Center.leftUnitor_hom_f
code: @[simp]
theorem leftUnitor_hom_f (X : Center C) : Hom.f (λ_ X).hom = (λ_ X.1).hom 
goal: (λ_ X).hom.f = (λ_ X.fst).hom

full_name: CategoryTheory.Center.leftUnitor_inv_f
code: @[simp]
theorem leftUnitor_inv_f (X : Center C) : Hom.f (λ_ X).inv = (λ_ X.1).inv 
goal: (λ_ X).inv.f = (λ_ X.fst).inv

full_name: CategoryTheory.Center.rightUnitor_hom_f
code: @[simp]
theorem rightUnitor_hom_f (X : Center C) : Hom.f (ρ_ X).hom = (ρ_ X.1).hom 
goal: (ρ_ X).hom.f = (ρ_ X.fst).hom

full_name: CategoryTheory.Center.rightUnitor_inv_f
code: @[simp]
theorem rightUnitor_inv_f (X : Center C) : Hom.f (ρ_ X).inv = (ρ_ X.1).inv 
goal: (ρ_ X).inv.f = (ρ_ X.fst).inv

full_name: CategoryTheory.Center.forget_toLaxMonoidalFunctor_ε
code: /-- The forgetful monoidal functor from the Drinfeld center to the original category. -/
@[simps]
def forget : MonoidalFunctor (Center C) C 
goal: (CategoryTheory.Center.forget C).ε = 𝟙 (𝟙_ C)

full_name: CategoryTheory.Center.forget_toLaxMonoidalFunctor_toFunctor_map
code: /-- The forgetful monoidal functor from the Drinfeld center to the original category. -/
@[simps]
def forget : MonoidalFunctor (Center C) C 
goal: ∀ {X Y : CategoryTheory.Center C} (f : X ⟶ Y), (CategoryTheory.Center.forget C).map f = f.f

full_name: CategoryTheory.Center.forget_toLaxMonoidalFunctor_μ
code: /-- The forgetful monoidal functor from the Drinfeld center to the original category. -/
@[simps]
def forget : MonoidalFunctor (Center C) C 
goal: (CategoryTheory.Center.forget C).μ X Y = 𝟙 (X.fst ⊗ Y.fst)

full_name: CategoryTheory.Center.forget
code: /-- The forgetful monoidal functor from the Drinfeld center to the original category. -/
@[simps]
def forget : MonoidalFunctor (Center C) C 
goal: CategoryTheory.MonoidalFunctor (CategoryTheory.Center C) C

full_name: CategoryTheory.Center.forget_toLaxMonoidalFunctor_toFunctor_obj
code: /-- The forgetful monoidal functor from the Drinfeld center to the original category. -/
@[simps]
def forget : MonoidalFunctor (Center C) C 
goal: (CategoryTheory.Center.forget C).obj X = X.fst

full_name: CategoryTheory.Center.instReflectsIsomorphismsForget
code: instance : (forget C).ReflectsIsomorphisms 
goal: (CategoryTheory.Center.forget C).ReflectsIsomorphisms

full_name: CategoryTheory.Center.braiding_hom_f
code: /-- Auxiliary definition for the `BraidedCategory` instance on `Center C`. -/
@[simps!]
def braiding (X Y : Center C) : X ⊗ Y ≅ Y ⊗ X 
goal: (X.braiding Y).hom.f = (X.snd.β Y.fst).hom

full_name: CategoryTheory.Center.braiding_inv_f
code: /-- Auxiliary definition for the `BraidedCategory` instance on `Center C`. -/
@[simps!]
def braiding (X Y : Center C) : X ⊗ Y ≅ Y ⊗ X 
goal: (X.braiding Y).inv.f = (X.snd.β Y.fst).inv

full_name: CategoryTheory.Center.braiding
code: /-- Auxiliary definition for the `BraidedCategory` instance on `Center C`. -/
@[simps!]
def braiding (X Y : Center C) : X ⊗ Y ≅ Y ⊗ X 
goal: X ⊗ Y ≅ Y ⊗ X

full_name: CategoryTheory.Center.braidedCategoryCenter
code: instance braidedCategoryCenter : BraidedCategory (Center C) 
goal: CategoryTheory.BraidedCategory (CategoryTheory.Center C)

full_name: CategoryTheory.Center.ofBraidedObj_fst
code: /-- Auxiliary construction for `ofBraided`. -/
@[simps]
def ofBraidedObj (X : C) : Center C 
goal: (CategoryTheory.Center.ofBraidedObj X).fst = X

full_name: CategoryTheory.Center.ofBraidedObj
code: /-- Auxiliary construction for `ofBraided`. -/
@[simps]
def ofBraidedObj (X : C) : Center C 
goal: CategoryTheory.Center C

full_name: CategoryTheory.Center.ofBraidedObj_snd_β
code: /-- Auxiliary construction for `ofBraided`. -/
@[simps]
def ofBraidedObj (X : C) : Center C 
goal: (CategoryTheory.Center.ofBraidedObj X).snd.β Y = β_ X Y

full_name: CategoryTheory.Center.ofBraided
code: /-- The functor lifting a braided category to its center, using the braiding as the half-braiding.
-/
@[simps]
def ofBraided : MonoidalFunctor C (Center C) 
goal: CategoryTheory.MonoidalFunctor C (CategoryTheory.Center C)

full_name: CategoryTheory.Center.ofBraided_toLaxMonoidalFunctor_μ_f
code: /-- The functor lifting a braided category to its center, using the braiding as the half-braiding.
-/
@[simps]
def ofBraided : MonoidalFunctor C (Center C) 
goal: ((CategoryTheory.Center.ofBraided C).μ X Y).f =
  𝟙
    ({ obj := CategoryTheory.Center.ofBraidedObj, map := fun {X Y} f => { f := f, comm := ⋯ }, map_id := ⋯,
              map_comp := ⋯ }.obj
          X ⊗
        { obj := CategoryTheory.Center.ofBraidedObj, map := fun {X Y} f => { f := f, comm := ⋯ }, map_id := ⋯,
              map_comp := ⋯ }.obj
          Y).fst

full_name: CategoryTheory.Center.ofBraided_toLaxMonoidalFunctor_ε_f
code: /-- The functor lifting a braided category to its center, using the braiding as the half-braiding.
-/
@[simps]
def ofBraided : MonoidalFunctor C (Center C) 
goal: (CategoryTheory.Center.ofBraided C).ε.f = 𝟙 (𝟙_ (CategoryTheory.Center C)).fst

full_name: CategoryTheory.Center.ofBraided_toLaxMonoidalFunctor_toFunctor_map_f
code: /-- The functor lifting a braided category to its center, using the braiding as the half-braiding.
-/
@[simps]
def ofBraided : MonoidalFunctor C (Center C) 
goal: ∀ {X Y : C} (f : X ⟶ Y), ((CategoryTheory.Center.ofBraided C).map f).f = f

full_name: CategoryTheory.Center.ofBraided_toLaxMonoidalFunctor_toFunctor_obj
code: /-- The functor lifting a braided category to its center, using the braiding as the half-braiding.
-/
@[simps]
def ofBraided : MonoidalFunctor C (Center C) 
goal: (CategoryTheory.Center.ofBraided C).obj X = CategoryTheory.Center.ofBraidedObj X