Complements #
In this file we define the complement of a subgroup.
Main definitions #
Subgroup.IsComplement S T
whereS
andT
are subsets ofG
states that everyg : G
can be written uniquely as a products * t
fors ∈ S
,t ∈ T
.H.LeftTransversal
whereH
is a subgroup ofG
is the type of all left-complements ofH
, i.e. the set of allS : Set G
that contain exactly one element of each left coset ofH
.H.RightTransversal
whereH
is a subgroup ofG
is the set of all right-complements ofH
, i.e. the set of allT : Set G
that contain exactly one element of each right coset ofH
.
Main results #
isComplement'_of_coprime
: Subgroups of coprime order are complements.
S
and T
are complements if (*) : S × T → G
is a bijection.
This notion generalizes left transversals, right transversals, and complementary subgroups.
Equations
- Subgroup.IsComplement S T = Function.Bijective fun (x : ↑S × ↑T) => ↑x.1 * ↑x.2
Instances For
S
and T
are complements if (+) : S × T → G
is a bijection
Equations
- AddSubgroup.IsComplement S T = Function.Bijective fun (x : ↑S × ↑T) => ↑x.1 + ↑x.2
Instances For
H
and K
are complements if (*) : H × K → G
is a bijection
Equations
- H.IsComplement' K = Subgroup.IsComplement ↑H ↑K
Instances For
H
and K
are complements if (+) : H × K → G
is a bijection
Equations
- H.IsComplement' K = AddSubgroup.IsComplement ↑H ↑K
Instances For
The set of left-complements of T : Set G
Equations
- Subgroup.leftTransversals T = {S : Set G | Subgroup.IsComplement S T}
Instances For
The set of left-complements of T : Set G
Equations
- AddSubgroup.leftTransversals T = {S : Set G | AddSubgroup.IsComplement S T}
Instances For
The set of right-complements of S : Set G
Equations
- Subgroup.rightTransversals S = {T : Set G | Subgroup.IsComplement S T}
Instances For
The set of right-complements of S : Set G
Equations
- AddSubgroup.rightTransversals S = {T : Set G | AddSubgroup.IsComplement S T}
Instances For
The equivalence G ≃ S × T
, such that the inverse is (*) : S × T → G
Equations
- hST.equiv = (Equiv.ofBijective (fun (x : ↑S × ↑T) => ↑x.1 * ↑x.2) hST).symm
Instances For
A left transversal is in bijection with left cosets.
Equations
- hS.leftQuotientEquiv = (Equiv.ofBijective (S.restrict QuotientGroup.mk) ⋯).symm
Instances For
A left transversal is in bijection with left cosets.
Equations
- hS.leftQuotientEquiv = (Equiv.ofBijective (S.restrict QuotientAddGroup.mk) ⋯).symm
Instances For
Alias of Subgroup.IsComplement.leftQuotientEquiv
.
A left transversal is in bijection with left cosets.
Instances For
A left transversal is finite iff the subgroup has finite index.
A left transversal is finite iff the subgroup has finite index.
Alias of Subgroup.IsComplement.finite_left_iff
.
A left transversal is finite iff the subgroup has finite index.
Alias of Subgroup.IsComplement.quotientGroupMk_leftQuotientEquiv
.
A left transversal can be viewed as a function mapping each element of the group to the chosen representative from that left coset.
Equations
- hS.toLeftFun = ⇑hS.leftQuotientEquiv ∘ Quotient.mk''
Instances For
A left transversal can be viewed as a function mapping each element of the group to the chosen representative from that left coset.
Equations
- hS.toLeftFun = ⇑hS.leftQuotientEquiv ∘ Quotient.mk''
Instances For
Alias of Subgroup.IsComplement.toLeftFun
.
A left transversal can be viewed as a function mapping each element of the group to the chosen representative from that left coset.
Instances For
A right transversal is in bijection with right cosets.
Equations
- hT.rightQuotientEquiv = (Equiv.ofBijective (T.restrict Quotient.mk'') ⋯).symm
Instances For
A right transversal is in bijection with right cosets.
Equations
- hT.rightQuotientEquiv = (Equiv.ofBijective (T.restrict Quotient.mk'') ⋯).symm
Instances For
Alias of Subgroup.IsComplement.rightQuotientEquiv
.
A right transversal is in bijection with right cosets.
Instances For
A right transversal is finite iff the subgroup has finite index.
A right transversal is finite iff the subgroup has finite index.
Alias of Subgroup.IsComplement.finite_right_iff
.
A right transversal is finite iff the subgroup has finite index.
A right transversal can be viewed as a function mapping each element of the group to the chosen representative from that right coset.
Equations
- hT.toRightFun = ⇑hT.rightQuotientEquiv ∘ Quotient.mk''
Instances For
A right transversal can be viewed as a function mapping each element of the group to the chosen representative from that right coset.
Equations
- hT.toRightFun = ⇑hT.rightQuotientEquiv ∘ Quotient.mk''
Instances For
Alias of Subgroup.IsComplement.toRightFun
.
A right transversal can be viewed as a function mapping each element of the group to the chosen representative from that right coset.
Instances For
The collection of left transversals of a subgroup.
Equations
- H.LeftTransversal = { S : Set G // Subgroup.IsComplement S ↑H }
Instances For
The collection of left transversals of a subgroup.
Equations
- H.LeftTransversal = { S : Set G // AddSubgroup.IsComplement S ↑H }
Instances For
The collection of right transversals of a subgroup.
Equations
- H.RightTransversal = { T : Set G // Subgroup.IsComplement (↑H) T }
Instances For
The collection of right transversals of a subgroup.
Equations
- H.RightTransversal = { T : Set G // AddSubgroup.IsComplement (↑H) T }
Instances For
Equations
Equations
Equations
- Subgroup.instInhabitedLeftTransversal = { default := ⟨Set.range Quotient.out, ⋯⟩ }
Equations
- AddSubgroup.instInhabitedLeftTransversal = { default := ⟨Set.range Quotient.out, ⋯⟩ }
Equations
- Subgroup.instInhabitedRightTransversal = { default := ⟨Set.range Quotient.out, ⋯⟩ }
Equations
- AddSubgroup.instInhabitedRightTransversal = { default := ⟨Set.range Quotient.out, ⋯⟩ }
If H
and K
are complementary with K
normal, then G ⧸ K
is isomorphic to H
.
Equations
- h.QuotientMulEquiv = (let __src := (Subgroup.IsComplement.leftQuotientEquiv h).symm; { toEquiv := __src, map_mul' := ⋯ }).symm