Complements #
In this file we define the complement of a subgroup.
Main definitions #
IsComplement S T
whereS
andT
are subsets ofG
states that everyg : G
can be written uniquely as a products * t
fors ∈ S
,t ∈ T
.leftTransversals T
whereT
is a subset ofG
is the set of all left-complements ofT
, i.e. the set of allS : Set G
that contain exactly one element of each left coset ofT
.rightTransversals S
whereS
is a subset ofG
is the set of all right-complements ofS
, i.e. the set of allT : Set G
that contain exactly one element of each right coset ofS
.transferTransversal H g
is a specificleftTransversal
ofH
that is used in the computation of the transfer homomorphism evaluated at an elementg : G
.
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
- Subgroup.MemLeftTransversals.toEquiv hS = (Equiv.ofBijective (S.restrict Quotient.mk'') ⋯).symm
Instances For
A left transversal is in bijection with left cosets.
Equations
- AddSubgroup.MemLeftTransversals.toEquiv hS = (Equiv.ofBijective (S.restrict Quotient.mk'') ⋯).symm
Instances For
A left transversal is finite iff the subgroup has finite index
A left transversal can be viewed as a function mapping each element of the group to the chosen representative from that left coset.
Equations
- Subgroup.MemLeftTransversals.toFun hS = ⇑(Subgroup.MemLeftTransversals.toEquiv hS) ∘ 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
- AddSubgroup.MemLeftTransversals.toFun hS = ⇑(AddSubgroup.MemLeftTransversals.toEquiv hS) ∘ Quotient.mk''
Instances For
A right transversal is in bijection with right cosets.
Equations
- Subgroup.MemRightTransversals.toEquiv hS = (Equiv.ofBijective (S.restrict Quotient.mk'') ⋯).symm
Instances For
A right transversal is in bijection with right cosets.
Equations
- AddSubgroup.MemRightTransversals.toEquiv hS = (Equiv.ofBijective (S.restrict Quotient.mk'') ⋯).symm
Instances For
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
- Subgroup.MemRightTransversals.toFun hS = ⇑(Subgroup.MemRightTransversals.toEquiv hS) ∘ 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
- AddSubgroup.MemRightTransversals.toFun hS = ⇑(AddSubgroup.MemRightTransversals.toEquiv hS) ∘ Quotient.mk''
Instances For
Equations
- Subgroup.instMulActionElemSetLeftTransversalsCoe = MulAction.mk ⋯ ⋯
Equations
- AddSubgroup.instAddActionElemSetLeftTransversalsCoe = AddAction.mk ⋯ ⋯
If H
and K
are complementary with K
normal, then G ⧸ K
is isomorphic to H
.
Equations
- h.QuotientMulEquiv = (let __src := (Subgroup.MemLeftTransversals.toEquiv h).symm; { toEquiv := __src, map_mul' := ⋯ }).symm