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_iff
{G : Type u_1}
{inst✝ : Group G}
{x y : FiniteIndexNormalSubgroup G}
:
theorem
FiniteIndexNormalSubgroup.ext
{G : Type u_1}
{inst✝ : Group G}
{x y : FiniteIndexNormalSubgroup G}
(carrier : x.carrier = y.carrier)
:
The type of finite-index normal additive subgroups of an additive group.
- isNormal' : self.Normal
- isFiniteIndex' : self.FiniteIndex
Instances For
theorem
FiniteIndexNormalAddSubgroup.ext_iff
{G : Type u_1}
{inst✝ : AddGroup G}
{x y : FiniteIndexNormalAddSubgroup G}
:
theorem
FiniteIndexNormalAddSubgroup.ext
{G : Type u_1}
{inst✝ : AddGroup G}
{x y : FiniteIndexNormalAddSubgroup G}
(carrier : x.carrier = y.carrier)
:
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
Equations
- FiniteIndexNormalSubgroup.instSetLike = { coe := fun (U : FiniteIndexNormalSubgroup G) => ↑U.toSubgroup, coe_injective' := ⋯ }
Equations
- FiniteIndexNormalAddSubgroup.instSetLike = { coe := fun (U : FiniteIndexNormalAddSubgroup G) => ↑U.toAddSubgroup, coe_injective' := ⋯ }
instance
FiniteIndexNormalSubgroup.instCoeSubgroup
{G : Type u_1}
[Group G]
:
Coe (FiniteIndexNormalSubgroup G) (Subgroup G)
Equations
- FiniteIndexNormalSubgroup.instCoeSubgroup = { coe := fun (H : FiniteIndexNormalSubgroup G) => H.toSubgroup }
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)
:
Equations
- One or more equations did not get rendered due to their size.
instance
FiniteIndexNormalAddSubgroup.instInfFiniteIndexNormalAddSubgroup
{G : Type u_1}
[AddGroup G]
:
Equations
- One or more equations did not get rendered due to their size.
instance
FiniteIndexNormalAddSubgroup.instSemilatticeInfFiniteIndexNormalAddSubgroup
{G : Type u_1}
[AddGroup G]
:
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
instance
FiniteIndexNormalSubgroup.instSemilatticeSupFiniteIndexNormalSubgroup
{G : Type u_1}
[Group G]
:
Equations
instance
FiniteIndexNormalAddSubgroup.instSemilatticeSupFiniteIndexNormalAddSubgroup
{G : Type u_1}
[AddGroup G]
:
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
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)
: