Finite-index normal subgroups #
This file builds the lattice FiniteIndexNormalSubgroup G of finite-index normal subgroups of a
group G, and its additive version FiniteIndexNormalAddSubgroup.
This is used primarily in the definition of the profinite completion of a group.
The type of finite-index normal subgroups of a group.
- isNormal' : self.Normal
- isFiniteIndex' : self.FiniteIndex
Instances For
theorem FiniteIndexNormalSubgroup.ext {G : Type u_1} {inst✝ : Group G} {x y : FiniteIndexNormalSubgroup G} (carrier : x.carrier = y.carrier) :
theorem FiniteIndexNormalSubgroup.ext_iff {G : Type u_1} {inst✝ : Group G} {x y : FiniteIndexNormalSubgroup G} :
The type of finite-index normal additive subgroups of an additive group.
- isNormal' : self.Normal
- isFiniteIndex' : self.FiniteIndex
Instances For
theorem FiniteIndexNormalAddSubgroup.ext {G : Type u_1} {inst✝ : AddGroup G} {x y : FiniteIndexNormalAddSubgroup G} (carrier : x.carrier = y.carrier) :
theorem FiniteIndexNormalAddSubgroup.ext_iff {G : Type u_1} {inst✝ : AddGroup G} {x y : FiniteIndexNormalAddSubgroup G} :
theorem FiniteIndexNormalSubgroup.toSubgroup_injective {G : Type u_1} [Group G] :
Function.Injective fun (H : FiniteIndexNormalSubgroup G) => H.toSubgroup
theorem FiniteIndexNormalAddSubgroup.toAddSubgroup_injective {G : Type u_1} [AddGroup G] :
Function.Injective fun (H : FiniteIndexNormalAddSubgroup G) => H.toAddSubgroup
@[instance_reducible]
Equations
- FiniteIndexNormalSubgroup.instSetLike = { coe := fun (U : FiniteIndexNormalSubgroup G) => ↑U.toSubgroup, coe_injective := ⋯ }
@[instance_reducible]
Equations
- FiniteIndexNormalAddSubgroup.instSetLike = { coe := fun (U : FiniteIndexNormalAddSubgroup G) => ↑U.toAddSubgroup, coe_injective := ⋯ }
@[instance_reducible]
@[instance_reducible]
@[instance_reducible]
instance FiniteIndexNormalSubgroup.instCoeSubgroup {G : Type u_1} [Group G] :
Coe (FiniteIndexNormalSubgroup G) (Subgroup G)
Equations
- FiniteIndexNormalSubgroup.instCoeSubgroup = { coe := fun (H : FiniteIndexNormalSubgroup G) => H.toSubgroup }
@[instance_reducible]
Equations
- FiniteIndexNormalAddSubgroup.instCoeAddSubgroup = { coe := fun (H : FiniteIndexNormalAddSubgroup G) => H.toAddSubgroup }
instance FiniteIndexNormalSubgroup.instNormal {G : Type u_1} [Group G] (H : FiniteIndexNormalSubgroup G) :
H.Normal
instance FiniteIndexNormalAddSubgroup.instNormal {G : Type u_1} [AddGroup G] (H : FiniteIndexNormalAddSubgroup G) :
H.Normal
instance FiniteIndexNormalSubgroup.instFiniteIndex {G : Type u_1} [Group G] (H : FiniteIndexNormalSubgroup G) :
instance FiniteIndexNormalAddSubgroup.instFiniteIndex {G : Type u_1} [AddGroup G] (H : FiniteIndexNormalAddSubgroup G) :
@[instance_reducible]
instance FiniteIndexNormalSubgroup.instPartialOrderFiniteIndexNormalSubgroup {G : Type u_1} [Group G] :
@[instance_reducible]
instance FiniteIndexNormalAddSubgroup.instPartialOrderFiniteIndexNormalAddSubgroup {G : Type u_1} [AddGroup G] :
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance FiniteIndexNormalAddSubgroup.instInfFiniteIndexNormalAddSubgroup {G : Type u_1} [AddGroup G] :
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance FiniteIndexNormalSubgroup.instSemilatticeInfFiniteIndexNormalSubgroup {G : Type u_1} [Group G] :
@[instance_reducible]
instance FiniteIndexNormalAddSubgroup.instSemilatticeInfFiniteIndexNormalAddSubgroup {G : Type u_1} [AddGroup G] :
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance FiniteIndexNormalSubgroup.instSemilatticeSupFiniteIndexNormalSubgroup {G : Type u_1} [Group G] :
Equations
@[instance_reducible]
instance FiniteIndexNormalAddSubgroup.instSemilatticeSupFiniteIndexNormalAddSubgroup {G : Type u_1} [AddGroup G] :
Equations
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
theorem FiniteIndexNormalSubgroup.mem_toSubgroup_iff {G : Type u_1} [Group G] {H : FiniteIndexNormalSubgroup G} {g : G} :
theorem FiniteIndexNormalAddSubgroup.mem_toAddSubgroup_iff {G : Type u_1} [AddGroup G] {H : FiniteIndexNormalAddSubgroup G} {g : G} :
def FiniteIndexNormalSubgroup.ofSubgroup {G : Type u_1} [Group G] (H : Subgroup G) [H.Normal] [H.FiniteIndex] :
Bundle a subgroup with typeclass assumptions of normality and finite index.
Equations
- FiniteIndexNormalSubgroup.ofSubgroup H = { toSubgroup := H, isNormal' := ⋯, isFiniteIndex' := ⋯ }
Instances For
def FiniteIndexNormalAddSubgroup.ofAddSubgroup {G : Type u_1} [AddGroup G] (H : AddSubgroup G) [H.Normal] [H.FiniteIndex] :
Bundle an additive subgroup with typeclass assumptions of normality and finite index.
Equations
- FiniteIndexNormalAddSubgroup.ofAddSubgroup H = { toAddSubgroup := H, isNormal' := ⋯, isFiniteIndex' := ⋯ }
Instances For
@[simp]
theorem FiniteIndexNormalSubgroup.toSubgroup_ofSubgroup {G : Type u_1} [Group G] (H : Subgroup G) [H.Normal] [H.FiniteIndex] :
@[simp]
theorem FiniteIndexNormalAddSubgroup.toAddSubgroup_ofAddSubgroup {G : Type u_1} [AddGroup G] (H : AddSubgroup G) [H.Normal] [H.FiniteIndex] :
def FiniteIndexNormalSubgroup.comap {G : Type u_1} [Group G] {H : Type u_2} [Group H] (f : G →* H) (K : FiniteIndexNormalSubgroup H) :
The preimage of a finite-index normal subgroup under a group homomorphism.
Equations
- FiniteIndexNormalSubgroup.comap f K = { toSubgroup := Subgroup.comap f K.toSubgroup, isNormal' := ⋯, isFiniteIndex' := ⋯ }
Instances For
def FiniteIndexNormalAddSubgroup.comap {G : Type u_1} [AddGroup G] {H : Type u_2} [AddGroup H] (f : G →+ H) (K : FiniteIndexNormalAddSubgroup H) :
The preimage of a finite-index normal additive subgroup under an additive homomorphism.
Equations
- FiniteIndexNormalAddSubgroup.comap f K = { toAddSubgroup := AddSubgroup.comap f K.toAddSubgroup, isNormal' := ⋯, isFiniteIndex' := ⋯ }
Instances For
@[simp]
theorem FiniteIndexNormalSubgroup.toSubgroup_comap {G : Type u_1} [Group G] {H : Type u_2} [Group H] (f : G →* H) (K : FiniteIndexNormalSubgroup H) :
@[simp]
theorem FiniteIndexNormalAddSubgroup.toAddSubgroup_comap {G : Type u_1} [AddGroup G] {H : Type u_2} [AddGroup H] (f : G →+ H) (K : FiniteIndexNormalAddSubgroup H) :
@[simp]
theorem FiniteIndexNormalSubgroup.comap_id {G : Type u_1} [Group G] (K : FiniteIndexNormalSubgroup G) :
@[simp]
theorem FiniteIndexNormalAddSubgroup.comap_id {G : Type u_1} [AddGroup G] (K : FiniteIndexNormalAddSubgroup G) :