File: Mathlib/Algebra/Category/MonCat/Adjunctions.lean

full_name: MonCat.adjoinOne_map
code: /-- The functor of adjoining a neutral element `one` to a semigroup.
 -/
@[to_additive (attr := simps) "The functor of adjoining a neutral element `zero` to a semigroup"]
def adjoinOne : Semigrp.{u} ⥤ MonCat.{u} 
goal: ∀ {X Y : Semigrp} (f : ↑X →ₙ* ↑Y), MonCat.adjoinOne.map f = WithOne.map f

full_name: AddMonCat.adjoinZero
code: /-- The functor of adjoining a neutral element `one` to a semigroup.
 -/
@[to_additive (attr := simps) "The functor of adjoining a neutral element `zero` to a semigroup"]
def adjoinOne : Semigrp.{u} ⥤ MonCat.{u} 
goal: AddSemigrp ⥤ AddMonCat

full_name: MonCat.adjoinOne
code: /-- The functor of adjoining a neutral element `one` to a semigroup.
 -/
@[to_additive (attr := simps) "The functor of adjoining a neutral element `zero` to a semigroup"]
def adjoinOne : Semigrp.{u} ⥤ MonCat.{u} 
goal: Semigrp ⥤ MonCat

full_name: MonCat.adjoinOne_obj
code: /-- The functor of adjoining a neutral element `one` to a semigroup.
 -/
@[to_additive (attr := simps) "The functor of adjoining a neutral element `zero` to a semigroup"]
def adjoinOne : Semigrp.{u} ⥤ MonCat.{u} 
goal: MonCat.adjoinOne.obj S = MonCat.of (WithOne ↑S)

full_name: AddMonCat.adjoinZero_obj
code: /-- The functor of adjoining a neutral element `one` to a semigroup.
 -/
@[to_additive (attr := simps) "The functor of adjoining a neutral element `zero` to a semigroup"]
def adjoinOne : Semigrp.{u} ⥤ MonCat.{u} 
goal: AddMonCat.adjoinZero.obj S = AddMonCat.of (WithZero ↑S)

full_name: AddMonCat.adjoinZero_map
code: /-- The functor of adjoining a neutral element `one` to a semigroup.
 -/
@[to_additive (attr := simps) "The functor of adjoining a neutral element `zero` to a semigroup"]
def adjoinOne : Semigrp.{u} ⥤ MonCat.{u} 
goal: ∀ {X Y : AddSemigrp} (f : AddHom ↑X ↑Y), AddMonCat.adjoinZero.map f = WithZero.map f

full_name: MonCat.hasForgetToSemigroup
code: @[to_additive]
instance hasForgetToSemigroup : HasForget₂ MonCat Semigrp 
goal: CategoryTheory.HasForget₂ MonCat Semigrp

full_name: AddMonCat.hasForgetToAddSemigroup
code: @[to_additive]
instance hasForgetToSemigroup : HasForget₂ MonCat Semigrp 
goal: CategoryTheory.HasForget₂ AddMonCat AddSemigrp

full_name: AddMonCat.adjoinZeroAdj
code: /-- The `adjoinOne`-forgetful adjunction from `Semigrp` to `MonCat`. -/
@[to_additive "The `adjoinZero`-forgetful adjunction from `AddSemigrp` to `AddMonCat`"]
def adjoinOneAdj : adjoinOne ⊣ forget₂ MonCat.{u} Semigrp.{u} 
goal: AddMonCat.adjoinZero ⊣ CategoryTheory.forget₂ AddMonCat AddSemigrp

full_name: MonCat.adjoinOneAdj
code: /-- The `adjoinOne`-forgetful adjunction from `Semigrp` to `MonCat`. -/
@[to_additive "The `adjoinZero`-forgetful adjunction from `AddSemigrp` to `AddMonCat`"]
def adjoinOneAdj : adjoinOne ⊣ forget₂ MonCat.{u} Semigrp.{u} 
goal: MonCat.adjoinOne ⊣ CategoryTheory.forget₂ MonCat Semigrp

full_name: MonCat.free
code: /-- The free functor `Type u ⥤ MonCat` sending a type `X` to the free monoid on `X`. -/
def free : Type u ⥤ MonCat.{u} 
goal: Type u ⥤ MonCat

full_name: MonCat.adj
code: /-- The free-forgetful adjunction for monoids. -/
def adj : free ⊣ forget MonCat.{u} 
goal: MonCat.free ⊣ CategoryTheory.forget MonCat

full_name: MonCat.instIsRightAdjointForget
code: instance : (forget MonCat.{u}).IsRightAdjoint 
goal: (CategoryTheory.forget MonCat).IsRightAdjoint