Category instances for group, add_group, comm_group, and add_comm_group. #
We introduce the bundled categories:
GroupAddGroupCommGroupAddCommGroupalong with the relevant forgetful functors between them, and to the bundled monoid categories.
Construct a bundled AddGroup from the underlying type and typeclass.
Equations
Typecheck a add_monoid_hom as a morphism in AddGroup.
Equations
- AddGroup.of_hom f = f
Typecheck a monoid_hom as a morphism in Group.
Equations
- Group.of_hom f = f
Equations
Equations
Equations
- AddGroup.inhabited = {default := 0}
Equations
- Group.inhabited = {default := 1}
Equations
- Group.one.unique = {to_inhabited := {default := 1}, uniq := Group.one.unique._proof_1}
Equations
- AddGroup.one.unique = {to_inhabited := {default := 0}, uniq := AddGroup.one.unique._proof_1}
The category of additive commutative groups and group morphisms.
Equations
The category of commutative groups and group morphisms.
Equations
Ab is an abbreviation for AddCommGroup, for the sake of mathematicians' sanity.
Construct a bundled AddCommGroup from the underlying type and typeclass.
Equations
Construct a bundled CommGroup from the underlying type and typeclass.
Equations
Typecheck a monoid_hom as a morphism in CommGroup.
Equations
- CommGroup.of_hom f = f
Typecheck a add_monoid_hom as a morphism in AddCommGroup.
Equations
- AddCommGroup.of_hom f = f
Equations
- G.comm_group_instance = G.str
Equations
Equations
Equations
Equations
- AddCommGroup.inhabited = {default := 0}
Equations
- CommGroup.inhabited = {default := 1}
Equations
- CommGroup.one.unique = {to_inhabited := {default := 1}, uniq := CommGroup.one.unique._proof_1}
Equations
- AddCommGroup.one.unique = {to_inhabited := {default := 0}, uniq := AddCommGroup.one.unique._proof_1}
Equations
Equations
Any element of an abelian group gives a unique morphism from ℤ sending
1 to that element.
Equations
- AddCommGroup.as_hom g = ⇑(zmultiples_hom ↥G) g
Build an isomorphism in the category Group from a mul_equiv between groups.
Equations
- e.to_Group_iso = {hom := e.to_monoid_hom, inv := e.symm.to_monoid_hom, hom_inv_id' := _, inv_hom_id' := _}
Build an isomorphism in the category AddGroup from an add_equiv between add_groups.
Equations
- e.to_AddGroup_iso = {hom := e.to_add_monoid_hom, inv := e.symm.to_add_monoid_hom, hom_inv_id' := _, inv_hom_id' := _}
Build an isomorphism in the category CommGroup from a mul_equiv between comm_groups.
Equations
- e.to_CommGroup_iso = {hom := e.to_monoid_hom, inv := e.symm.to_monoid_hom, hom_inv_id' := _, inv_hom_id' := _}
Build an isomorphism in the category AddCommGroup from a add_equiv between
add_comm_groups.
Equations
- e.to_AddCommGroup_iso = {hom := e.to_add_monoid_hom, inv := e.symm.to_add_monoid_hom, hom_inv_id' := _, inv_hom_id' := _}
Build a mul_equiv from an isomorphism in the category Group.
Equations
- i.Group_iso_to_mul_equiv = monoid_hom.to_mul_equiv i.hom i.inv _ _
Build an add_equiv from an isomorphism
in the category AddCommGroup.
Equations
Build a mul_equiv from an isomorphism in the category CommGroup.
Equations
- i.CommGroup_iso_to_mul_equiv = monoid_hom.to_mul_equiv i.hom i.inv _ _
multiplicative equivalences between groups are the same as (isomorphic to) isomorphisms
in Group
Equations
- mul_equiv_iso_Group_iso = {hom := λ (e : ↥X ≃* ↥Y), e.to_Group_iso, inv := λ (i : X ≅ Y), i.Group_iso_to_mul_equiv, hom_inv_id' := _, inv_hom_id' := _}
additive equivalences between add_groups are the same
as (isomorphic to) isomorphisms in AddGroup
Equations
- add_equiv_iso_AddGroup_iso = {hom := λ (e : ↥X ≃+ ↥Y), e.to_AddGroup_iso, inv := λ (i : X ≅ Y), i.AddGroup_iso_to_add_equiv, hom_inv_id' := _, inv_hom_id' := _}
additive equivalences between add_comm_groups are
the same as (isomorphic to) isomorphisms in AddCommGroup
Equations
- add_equiv_iso_AddCommGroup_iso = {hom := λ (e : ↥X ≃+ ↥Y), e.to_AddCommGroup_iso, inv := λ (i : X ≅ Y), i.AddCommGroup_iso_to_add_equiv, hom_inv_id' := _, inv_hom_id' := _}
multiplicative equivalences between comm_groups are the same as (isomorphic to) isomorphisms
in CommGroup
Equations
- mul_equiv_iso_CommGroup_iso = {hom := λ (e : ↥X ≃* ↥Y), e.to_CommGroup_iso, inv := λ (i : X ≅ Y), i.CommGroup_iso_to_mul_equiv, hom_inv_id' := _, inv_hom_id' := _}
The (bundled) group of automorphisms of a type is isomorphic to the (bundled) group of permutations.
Equations
- category_theory.Aut.iso_perm = {hom := {to_fun := λ (g : ↥(Group.of (category_theory.Aut α))), category_theory.iso.to_equiv g, map_one' := _, map_mul' := _}, inv := {to_fun := λ (g : ↥(Group.of (equiv.perm α))), equiv.to_iso g, map_one' := _, map_mul' := _}, hom_inv_id' := _, inv_hom_id' := _}
The (unbundled) group of automorphisms of a type is mul_equiv to the (unbundled) group
of permutations.