@@ -27,6 +27,8 @@ universe u
27
27
28
28
open CategoryTheory
29
29
30
+ namespace MonCat
31
+
30
32
/-- The functor of adjoining a neutral element `one` to a semigroup.
31
33
-/
32
34
@[to_additive (attr := simps) "The functor of adjoining a neutral element `zero` to a semigroup"]
@@ -35,18 +37,18 @@ def adjoinOne : SemigroupCat.{u} ⥤ MonCat.{u} where
35
37
map := WithOne.map
36
38
map_id _ := WithOne.map_id
37
39
map_comp := WithOne.map_comp
38
- #align adjoin_one adjoinOne
39
- #align adjoin_zero adjoinZero
40
+ #align adjoin_one MonCat. adjoinOne
41
+ #align adjoin_zero AddMonCat. adjoinZero
40
42
41
43
@[to_additive]
42
44
instance hasForgetToSemigroup : HasForget₂ MonCat SemigroupCat where
43
45
forget₂ :=
44
46
{ obj := fun M => SemigroupCat.of M
45
47
map := MonoidHom.toMulHom }
46
48
set_option linter.uppercaseLean3 false in
47
- #align has_forget_to_Semigroup hasForgetToSemigroup
49
+ #align has_forget_to_Semigroup MonCat. hasForgetToSemigroup
48
50
set_option linter.uppercaseLean3 false in
49
- #align has_forget_to_AddSemigroup hasForgetToAddSemigroup
51
+ #align has_forget_to_AddSemigroup AddMonCat. hasForgetToAddSemigroup
50
52
51
53
/-- The `adjoinOne`-forgetful adjunction from `SemigroupCat` to `MonCat`. -/
52
54
@[to_additive "The `adjoinZero`-forgetful adjunction from `AddSemigroupCat` to `AddMonCat`"]
@@ -62,23 +64,25 @@ def adjoinOneAdj : adjoinOne ⊣ forget₂ MonCat.{u} SemigroupCat.{u} :=
62
64
· rfl
63
65
· simp
64
66
rfl }
65
- #align adjoin_one_adj adjoinOneAdj
66
- #align adjoin_zero_adj adjoinZeroAdj
67
+ #align adjoin_one_adj MonCat. adjoinOneAdj
68
+ #align adjoin_zero_adj AddMonCat. adjoinZeroAdj
67
69
68
70
/-- The free functor `Type u ⥤ MonCat` sending a type `X` to the free monoid on `X`. -/
69
71
def free : Type u ⥤ MonCat.{u} where
70
72
obj α := MonCat.of (FreeMonoid α)
71
73
map := FreeMonoid.map
72
74
map_id _ := FreeMonoid.hom_eq (fun _ => rfl)
73
75
map_comp _ _ := FreeMonoid.hom_eq (fun _ => rfl)
74
- #align free free
76
+ #align free MonCat. free
75
77
76
78
/-- The free-forgetful adjunction for monoids. -/
77
79
def adj : free ⊣ forget MonCat.{u} :=
78
80
Adjunction.mkOfHomEquiv
79
81
{ homEquiv := fun X G => FreeMonoid.lift.symm
80
82
homEquiv_naturality_left_symm := fun _ _ => FreeMonoid.hom_eq (fun _ => rfl) }
81
- #align adj adj
83
+ #align adj MonCat. adj
82
84
83
85
instance : (forget MonCat.{u}).IsRightAdjoint :=
84
86
⟨_, ⟨adj⟩⟩
87
+
88
+ end MonCat
0 commit comments