Complements #
In this file we define the complement of a subgroup.
Main definitions #
IsComplement S TwhereSandTare subsets ofGstates that everyg : Gcan be written uniquely as a products * tfors ∈ S,t ∈ T.leftTransversals TwhereTis a subset ofGis the set of all left-complements ofT, i.e. the set of allS : Set Gthat contain exactly one element of each left coset ofT.rightTransversals SwhereSis a subset ofGis the set of all right-complements ofS, i.e. the set of allT : Set Gthat contain exactly one element of each right coset ofS.transferTransversal H gis a specificleftTransversalofHthat 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
Equations
- AddSubgroup.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.
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
H and K are complements if (+) : H × K → G is a bijection
Equations
Instances For
H and K are complements if (*) : H × K → G is a bijection
Equations
- Subgroup.IsComplement' H K = Subgroup.IsComplement ↑H ↑K
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 left-complements of T : Set G
Equations
- Subgroup.leftTransversals T = {S : 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 set of right-complements of S : Set G
Equations
- Subgroup.rightTransversals S = {T : Set G | Subgroup.IsComplement S T}
Instances For
Equations
- ⋯ = ⋯
Instances For
Equations
- ⋯ = ⋯
Instances For
Equations
- ⋯ = ⋯
Instances For
Equations
- ⋯ = ⋯
Instances For
The equivalence G ≃ S × T, such that the inverse is (*) : S × T → G
Equations
- Subgroup.IsComplement.equiv hST = (Equiv.ofBijective (fun (x : ↑S × ↑T) => ↑x.1 * ↑x.2) hST).symm
Instances For
A left transversal is in bijection with left cosets.
Equations
- AddSubgroup.MemLeftTransversals.toEquiv hS = (Equiv.ofBijective (Set.restrict S Quotient.mk'') ⋯).symm
Instances For
A left transversal is in bijection with left cosets.
Equations
- Subgroup.MemLeftTransversals.toEquiv hS = (Equiv.ofBijective (Set.restrict S Quotient.mk'') ⋯).symm
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 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 right transversal is in bijection with right cosets.
Equations
- AddSubgroup.MemRightTransversals.toEquiv hS = (Equiv.ofBijective (Set.restrict S Quotient.mk'') ⋯).symm
Instances For
A right transversal is in bijection with right cosets.
Equations
- Subgroup.MemRightTransversals.toEquiv hS = (Equiv.ofBijective (Set.restrict S Quotient.mk'') ⋯).symm
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
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
Equations
- AddSubgroup.instAddActionElemSetLeftTransversalsCoeAddSubgroupInstSetLikeAddSubgroupToAddMonoidToSubNegAddMonoid = AddAction.mk ⋯ ⋯
Equations
- Subgroup.instMulActionElemSetLeftTransversalsCoeSubgroupInstSetLikeSubgroupToMonoidToDivInvMonoid = MulAction.mk ⋯ ⋯
Partition G ⧸ H into orbits of the action of g : G.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The transfer transversal as a function. Given a ⟨g⟩-orbit q₀, g • q₀, ..., g ^ (m - 1) • q₀
in G ⧸ H, an element g ^ k • q₀ is mapped to g ^ k • g₀ for a fixed choice of
representative g₀ of q₀.
Equations
- Subgroup.transferFunction H g q = g ^ ZMod.cast ((Subgroup.quotientEquivSigmaZMod H g) q).snd * Quotient.out' (Quotient.out' ((Subgroup.quotientEquivSigmaZMod H g) q).fst)
Instances For
The transfer transversal as a set. Contains elements of the form g ^ k • g₀ for fixed choices
of representatives g₀ of fixed choices of representatives q₀ of ⟨g⟩-orbits in G ⧸ H.
Equations
Instances For
The transfer transversal. Contains elements of the form g ^ k • g₀ for fixed choices
of representatives g₀ of fixed choices of representatives q₀ of ⟨g⟩-orbits in G ⧸ H.
Equations
- Subgroup.transferTransversal H g = { val := Subgroup.transferSet H g, property := ⋯ }