Equivalence between Group
and AddGroup
#
This file contains two equivalences:
groupAddGroupEquivalence
: the equivalence betweenGroupCat
andAddGroupCat
by sendingX : GroupCat
toAdditive X
andY : AddGroupCat
toMultiplicative Y
.commGroupAddCommGroupEquivalence
: the equivalence betweenCommGroupCat
andAddCommGroupCat
by sendingX : CommGroupCat
toAdditive X
andY : AddCommGroupCat
toMultiplicative Y
.
@[simp]
theorem
GroupCat.toAddGroupCat_map
{X : GroupCat}
{Y : GroupCat}
(a : ↑X →* ↑Y)
:
GroupCat.toAddGroupCat.map a = ↑MonoidHom.toAdditive a
@[simp]
theorem
GroupCat.toAddGroupCat_obj
(X : GroupCat)
:
GroupCat.toAddGroupCat.obj X = AddGroupCat.of (Additive ↑X)
@[simp]
@[simp]
theorem
CommGroupCat.toAddCommGroupCat_map
{X : CommGroupCat}
{Y : CommGroupCat}
(a : ↑X →* ↑Y)
:
CommGroupCat.toAddCommGroupCat.map a = ↑MonoidHom.toAdditive a
The functor CommGroup ⥤ AddCommGroup
by sending X ↦ additive X
and f ↦ f
.
Instances For
@[simp]
theorem
AddGroupCat.toGroupCat_obj
(X : AddGroupCat)
:
AddGroupCat.toGroupCat.obj X = GroupCat.of (Multiplicative ↑X)
@[simp]
theorem
AddGroupCat.toGroupCat_map
{X : AddGroupCat}
{Y : AddGroupCat}
(a : ↑X →+ ↑Y)
:
AddGroupCat.toGroupCat.map a = ↑AddMonoidHom.toMultiplicative a
@[simp]
theorem
AddCommGroupCat.toCommGroupCat_map
{X : AddCommGroupCat}
{Y : AddCommGroupCat}
(a : ↑X →+ ↑Y)
:
AddCommGroupCat.toCommGroupCat.map a = ↑AddMonoidHom.toMultiplicative a
@[simp]
The functor AddCommGroup ⥤ CommGroup
by sending X ↦ multiplicative Y
and f ↦ f
.
Instances For
@[simp]
theorem
groupAddGroupEquivalence_counitIso_hom_app_apply
(X : AddGroupCat)
:
∀ (a : ↑((CategoryTheory.Functor.comp AddGroupCat.toGroupCat GroupCat.toAddGroupCat).obj X)),
↑(groupAddGroupEquivalence.counitIso.hom.app X) a = ↑(AddEquiv.additiveMultiplicative ↑X).toEquiv a
@[simp]
@[simp]
theorem
groupAddGroupEquivalence_inverse_obj_str_div
(X : AddGroupCat)
(x : Multiplicative ↑X)
(y : Multiplicative ↑X)
:
@[simp]
theorem
groupAddGroupEquivalence_inverse_map_apply
{X : AddGroupCat}
{Y : AddGroupCat}
(a : ↑X →+ ↑Y)
(a : Multiplicative ↑X)
:
↑(groupAddGroupEquivalence.inverse.map a) a = ↑Multiplicative.ofAdd (↑a (↑Multiplicative.toAdd a))
@[simp]
theorem
groupAddGroupEquivalence_inverse_obj_str_zpow
(X : AddGroupCat)
:
∀ (a : ℤ) (a_1 : ↑X), DivInvMonoid.zpow a a_1 = a • a_1
@[simp]
theorem
groupAddGroupEquivalence_functor_obj_α
(X : GroupCat)
:
↑(groupAddGroupEquivalence.functor.obj X) = Additive ↑X
@[simp]
theorem
groupAddGroupEquivalence_functor_map_apply
{X : GroupCat}
{Y : GroupCat}
(a : ↑X →* ↑Y)
(a : Additive ↑X)
:
↑(groupAddGroupEquivalence.functor.map a) a = ↑Additive.ofMul (↑a (↑Additive.toMul a))
@[simp]
theorem
groupAddGroupEquivalence_inverse_obj_str_mul
(X : AddGroupCat)
:
∀ (x x_1 : Multiplicative ↑X), x * x_1 = x * x_1
@[simp]
theorem
groupAddGroupEquivalence_unitIso_hom_app_apply
(X : GroupCat)
:
∀ (a : ↑((CategoryTheory.Functor.id GroupCat).obj X)),
↑(groupAddGroupEquivalence.unitIso.hom.app X) a = ↑(CategoryTheory.CategoryStruct.id (GroupCat.of (Multiplicative (Additive ↑X))))
(↑(CategoryTheory.CategoryStruct.comp (MulEquiv.toMonoidHom (MulEquiv.multiplicativeAdditive ↑X))
(CategoryTheory.CategoryStruct.comp
(↑AddMonoidHom.toMultiplicative
(AddEquiv.toAddMonoidHom (AddEquiv.symm (AddEquiv.additiveMultiplicative (Additive ↑X)))))
(↑AddMonoidHom.toMultiplicative
(↑MonoidHom.toAdditive (MulEquiv.toMonoidHom (MulEquiv.symm (MulEquiv.multiplicativeAdditive ↑X)))))))
a)
@[simp]
theorem
groupAddGroupEquivalence_unitIso_inv_app_apply
(X : GroupCat)
:
∀ (a : ↑((CategoryTheory.Functor.comp GroupCat.toAddGroupCat AddGroupCat.toGroupCat).obj X)),
↑(groupAddGroupEquivalence.unitIso.inv.app X) a = ↑(CategoryTheory.CategoryStruct.comp
(↑AddMonoidHom.toMultiplicative
(↑MonoidHom.toAdditive (MulEquiv.toMonoidHom (MulEquiv.multiplicativeAdditive ↑X))))
(CategoryTheory.CategoryStruct.comp
(↑AddMonoidHom.toMultiplicative (AddEquiv.toAddMonoidHom (AddEquiv.additiveMultiplicative (Additive ↑X))))
(MulEquiv.toMonoidHom (MulEquiv.symm (MulEquiv.multiplicativeAdditive ↑X)))))
(↑(CategoryTheory.CategoryStruct.id (GroupCat.of (Multiplicative (Additive ↑X)))) a)
@[simp]
theorem
groupAddGroupEquivalence_inverse_obj_α
(X : AddGroupCat)
:
↑(groupAddGroupEquivalence.inverse.obj X) = Multiplicative ↑X
@[simp]
theorem
groupAddGroupEquivalence_inverse_obj_str_npow
(X : AddGroupCat)
:
∀ (a : ℕ) (a_1 : ↑X), Monoid.npow a a_1 = a • a_1
@[simp]
theorem
groupAddGroupEquivalence_counitIso_inv_app_apply
(X : AddGroupCat)
:
∀ (a : ↑((CategoryTheory.Functor.id AddGroupCat).obj X)),
↑(groupAddGroupEquivalence.counitIso.inv.app X) a = ↑(AddEquiv.symm (AddEquiv.additiveMultiplicative ↑X)).toEquiv a
@[simp]
theorem
commGroupAddCommGroupEquivalence_functor_obj_α
(X : CommGroupCat)
:
↑(commGroupAddCommGroupEquivalence.functor.obj X) = Additive ↑X
@[simp]
theorem
commGroupAddCommGroupEquivalence_inverse_obj_α
(X : AddCommGroupCat)
:
↑(commGroupAddCommGroupEquivalence.inverse.obj X) = Multiplicative ↑X
@[simp]
theorem
commGroupAddCommGroupEquivalence_inverse_obj_str_npow
(X : AddCommGroupCat)
:
∀ (a : ℕ) (a_1 : ↑X), Monoid.npow a a_1 = a • a_1
@[simp]
@[simp]
@[simp]
@[simp]
theorem
commGroupAddCommGroupEquivalence_unitIso_hom_app_apply
(X : CommGroupCat)
:
∀ (a : ↑((CategoryTheory.Functor.id CommGroupCat).obj X)),
↑(commGroupAddCommGroupEquivalence.unitIso.hom.app X) a = ↑(↑AddMonoidHom.toMultiplicative
(↑MonoidHom.toAdditive (MulEquiv.toMonoidHom (MulEquiv.symm (MulEquiv.multiplicativeAdditive ↑X)))))
(↑(↑AddMonoidHom.toMultiplicative
(AddEquiv.toAddMonoidHom
(AddEquiv.symm (AddEquiv.additiveMultiplicative ↑(AddCommGroupCat.of (Additive ↑X))))))
(↑(MulEquiv.multiplicativeAdditive ↑X) a))
@[simp]
theorem
commGroupAddCommGroupEquivalence_inverse_map_apply
{X : AddCommGroupCat}
{Y : AddCommGroupCat}
(a : ↑X →+ ↑Y)
(a : Multiplicative ↑X)
:
↑(commGroupAddCommGroupEquivalence.inverse.map a) a = ↑Multiplicative.ofAdd (↑a (↑Multiplicative.toAdd a))
@[simp]
@[simp]
theorem
commGroupAddCommGroupEquivalence_counitIso_inv_app_apply
(X : AddCommGroupCat)
:
∀ (a : ↑((CategoryTheory.Functor.id AddCommGroupCat).obj X)),
↑(commGroupAddCommGroupEquivalence.counitIso.inv.app X) a = ↑(↑(AddEquiv.additiveMultiplicative ↑X)).symm a
@[simp]
theorem
commGroupAddCommGroupEquivalence_inverse_obj_str_div
(X : AddCommGroupCat)
(x : Multiplicative ↑X)
(y : Multiplicative ↑X)
:
@[simp]
theorem
commGroupAddCommGroupEquivalence_functor_obj_str_sub
(X : CommGroupCat)
(x : Additive ↑X)
(y : Additive ↑X)
:
@[simp]
theorem
commGroupAddCommGroupEquivalence_inverse_obj_str_zpow
(X : AddCommGroupCat)
:
∀ (a : ℤ) (a_1 : ↑X), DivInvMonoid.zpow a a_1 = a • a_1
@[simp]
theorem
commGroupAddCommGroupEquivalence_inverse_obj_str_mul
(X : AddCommGroupCat)
:
∀ (x x_1 : Multiplicative ↑X), x * x_1 = x * x_1
@[simp]
@[simp]
theorem
commGroupAddCommGroupEquivalence_functor_map_apply
{X : CommGroupCat}
{Y : CommGroupCat}
(a : ↑X →* ↑Y)
(a : Additive ↑X)
:
↑(commGroupAddCommGroupEquivalence.functor.map a) a = ↑Additive.ofMul (↑a (↑Additive.toMul a))
@[simp]
theorem
commGroupAddCommGroupEquivalence_unitIso_inv_app_apply
(X : CommGroupCat)
:
∀ (a : ↑((CategoryTheory.Functor.comp CommGroupCat.toAddCommGroupCat AddCommGroupCat.toCommGroupCat).obj X)),
↑(commGroupAddCommGroupEquivalence.unitIso.inv.app X) a = ↑(MulEquiv.symm (MulEquiv.multiplicativeAdditive ↑X))
(↑(↑AddMonoidHom.toMultiplicative
(AddEquiv.toAddMonoidHom (AddEquiv.additiveMultiplicative ↑(AddCommGroupCat.of (Additive ↑X)))))
(↑(↑AddMonoidHom.toMultiplicative
(↑MonoidHom.toAdditive (MulEquiv.toMonoidHom (MulEquiv.multiplicativeAdditive ↑X))))
a))
@[simp]
theorem
commGroupAddCommGroupEquivalence_counitIso_hom_app_apply
(X : AddCommGroupCat)
:
∀ (a : ↑((CategoryTheory.Functor.comp AddCommGroupCat.toCommGroupCat CommGroupCat.toAddCommGroupCat).obj X)),
↑(commGroupAddCommGroupEquivalence.counitIso.hom.app X) a = ↑↑(AddEquiv.additiveMultiplicative ↑X) a
@[simp]
theorem
commGroupAddCommGroupEquivalence_inverse_obj_str_inv
(X : AddCommGroupCat)
(x : Multiplicative ↑X)
:
@[simp]
The equivalence of categories between CommGroup
and AddCommGroup
.