Subgroups #
This file defines multiplicative and additive subgroups as an extension of submonoids, in a bundled
form (unbundled subgroups are in Deprecated/Subgroups.lean).
Special thanks goes to Amelia Livingston and Yury Kudryashov for their help and inspiration.
Main definitions #
Notation used here:
G NareGroupsAis anAddGroupH KareSubgroups ofGorAddSubgroups ofAxis an element of typeGor typeAf g : N →* Gare group homomorphismss kare sets of elements of typeG
Definitions in the file:
Subgroup G: the type of subgroups of a groupGAddSubgroup A: the type of subgroups of an additive groupASubgroup.subtype: the natural group homomorphism from a subgroup of groupGtoG
Implementation notes #
Subgroup inclusion is denoted ≤ rather than ⊆, although ∈ is defined as
membership of a subgroup's underlying set.
Tags #
subgroup, subgroups
SubgroupClass S G states S is a type of subsets s ⊆ G that are subgroups of G.
Instances
AddSubgroupClass S G states S is a type of subsets s ⊆ G that are
additive subgroups of G.
Instances
A subgroup of a group inherits an inverse.
A subgroup of a group inherits a division
An additive subgroup of an AddGroup inherits a subtraction.
An additive subgroup of an AddGroup inherits an integer scaling.
A subgroup of a group inherits an integer power.
A subgroup of a group inherits a group structure.
Equations
- One or more equations did not get rendered due to their size.
An additive subgroup of an AddGroup inherits an AddGroup structure.
Equations
- One or more equations did not get rendered due to their size.
A subgroup of a CommGroup is a CommGroup.
Equations
- SubgroupClass.toCommGroup H = { toGroup := SubgroupClass.toGroup H, mul_comm := ⋯ }
An additive subgroup of an AddCommGroup is an AddCommGroup.
Equations
- AddSubgroupClass.toAddCommGroup H = { toAddGroup := AddSubgroupClass.toAddGroup H, add_comm := ⋯ }
The natural group hom from a subgroup of group G to G.
Equations
- ↑H = { toFun := Subtype.val, map_one' := ⋯, map_mul' := ⋯ }
Instances For
The natural group hom from an additive subgroup of AddGroup G to G.
Equations
- ↑H = { toFun := Subtype.val, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Alias of SubgroupClass.coe_subtype.
Alias of AddSubgroupClass.coe_subtype.
The inclusion homomorphism from a subgroup H contained in K to K.
Equations
- SubgroupClass.inclusion h = MonoidHom.mk' (fun (x : ↥H) => ⟨↑x, ⋯⟩) ⋯
Instances For
The inclusion homomorphism from an additive subgroup H contained in K to K.
Equations
- AddSubgroupClass.inclusion h = AddMonoidHom.mk' (fun (x : ↥H) => ⟨↑x, ⋯⟩) ⋯
Instances For
A subgroup of a group G is a subset containing 1, closed under multiplication
and closed under multiplicative inverse.
Gis closed under inverses
Instances For
An additive subgroup of an additive group G is a subset containing 0, closed
under addition and additive inverse.
Gis closed under negation
Instances For
Equations
- AddSubgroup.instSetLike = { coe := fun (s : AddSubgroup G) => s.carrier, coe_injective' := ⋯ }
The actual Subgroup obtained from an element of a SubgroupClass
Equations
- Subgroup.ofClass s = { carrier := ↑s, mul_mem' := ⋯, one_mem' := ⋯, inv_mem' := ⋯ }
Instances For
The actual AddSubgroup obtained from an element of a
AddSubgroupClass
Equations
- AddSubgroup.ofClass s = { carrier := ↑s, add_mem' := ⋯, zero_mem' := ⋯, neg_mem' := ⋯ }
Instances For
Alias of Subgroup.toSubmonoid_inj.
Copy of an additive subgroup with a new carrier equal to the old one.
Useful to fix definitional equalities
Instances For
Two AddSubgroups are equal if they have the same elements.
An AddSubgroup contains the group's 0.
An AddSubgroup is closed under addition.
An AddSubgroup is closed under inverse.
An AddSubgroup is closed under subtraction.
Construct a subgroup from a nonempty set that is closed under division.
Equations
- Subgroup.ofDiv s hsn hs = { carrier := s, mul_mem' := ⋯, one_mem' := ⋯, inv_mem' := ⋯ }
Instances For
Construct a subgroup from a nonempty set that is closed under subtraction
Equations
- AddSubgroup.ofSub s hsn hs = { carrier := s, add_mem' := ⋯, zero_mem' := ⋯, neg_mem' := ⋯ }
Instances For
An AddSubgroup of an AddGroup inherits an addition.
An AddSubgroup of an AddGroup inherits a zero.
An AddSubgroup of an AddGroup inherits an inverse.
An AddSubgroup of an AddGroup inherits a subtraction.
An AddSubgroup of an AddGroup inherits a natural scaling.
An AddSubgroup of an AddGroup inherits an integer scaling.
A subgroup of a group inherits a group structure.
Equations
An AddSubgroup of an AddGroup inherits an AddGroup structure.
Equations
An AddSubgroup of an AddCommGroup is an AddCommGroup.
Equations
The natural group hom from an AddSubgroup of AddGroup G to G.
Equations
- H.subtype = { toFun := Subtype.val, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Alias of Subgroup.coe_subtype.
Alias of AddSubgroup.coe_subtype.
The inclusion homomorphism from a subgroup H contained in K to K.
Equations
- Subgroup.inclusion h = MonoidHom.mk' (fun (x : ↥H) => ⟨↑x, ⋯⟩) ⋯
Instances For
The inclusion homomorphism from an additive subgroup H contained in K to K.
Equations
- AddSubgroup.inclusion h = AddMonoidHom.mk' (fun (x : ↥H) => ⟨↑x, ⋯⟩) ⋯
Instances For
Alias of IsMulCommutative.
A Prop stating that the multiplication is commutative.
Equations
Instances For
Alias of IsAddCommutative.
A Prop stating that the addition is commutative.
Equations
Instances For
A subgroup of a commutative group is commutative.
A subgroup of a commutative group is commutative.
Alias of Subgroup.commGroup_isMulCommutative.
A subgroup of a commutative group is commutative.
Alias of Subgroup.commGroup_isMulCommutative.
A subgroup of a commutative group is commutative.