The dihedral groups: an enumeration, a recognition criterion, and the rotation subgroup #
For n ≠ 0, DihedralGroup n is finite, but Fintype alone does not hand back a list of its
elements, since Finset.toList is noncomputable. This file writes that list down, and evaluates
DihedralGroup.exponent — which computes the exponent of DihedralGroup n as lcm n 2 — at the
two orders the worked examples of the Burnside--Dixon--Schneider character-table algorithm are run
on.
It then proves the recognition criterion: a group generated by two involutions, neither of them the identity, is a dihedral group, of order twice the order of their product. Every rank-two reflection group is presented to us in that shape, and this is what identifies it.
Finally it names the rotation subgroup. It is presented as the kernel of the reflection parity,
so that it is normal of index 2; the defining dihedral relation is then recorded as
TauCeti.conj_eq_inv_of_notMem_dihedralRotations, that conjugation by anything outside it inverts
every rotation. Its cyclic coordinate is TauCeti.dihedralRotationsMulEquiv; the characters of the
rotation subgroup that coordinate names are in
TauCeti.GroupTheory.SpecificGroups.Dihedral.Character. The other subgroup the dihedral relation
distinguishes, the two-element subgroup {1, sr i} generated by a single reflection, is described
last: it is nontrivial, and proper except in DihedralGroup 1. The two subgroups are complementary
at every degree, finite or not, which is the semidirect decomposition DihedralGroup n = C_n ⋊ C₂.
Main definitions #
TauCeti.dihedralElements: a computable enumeration ofDihedralGroup n.TauCeti.dihedralHom: the homomorphismDihedralGroup n →* Mattached to two involutions in a monoid whose product satisfies(s * t) ^ n = 1.TauCeti.dihedralGroupMulEquiv: that homomorphism as an isomorphism, when the two involutions generateGand neither is the identity.TauCeti.dihedralReflectionParity,TauCeti.dihedralRotations: the reflection parity and the rotation subgroup it cuts out, withTauCeti.dihedralRotationsMulEquivits cyclic coordinate.
Main results #
TauCeti.mem_dihedralElements: that enumeration exhausts the group.TauCeti.exponent_dihedralGroup_three:DihedralGroup 3, of order6, has exponent6.TauCeti.exponent_dihedralGroup_four:DihedralGroup 4, of order8, has exponent4.TauCeti.range_dihedralHom: the image of the homomorphism is the subgroup generated by the two involutions.TauCeti.dihedralHom_injective: when the involutions are not the identity and their product has exact ordern, the homomorphism is injective.TauCeti.dihedralHom_bijectiveandTauCeti.nonempty_dihedralGroup_mulEquiv: a group generated by two involutions other than the identity is the dihedral group of order twice the order of their product.TauCeti.index_dihedralRotationsandTauCeti.card_dihedralRotations: the rotation subgroup has index2and ordern.TauCeti.mem_zpowers_dihedralSr_iff: the subgroup generated by a reflection is the two-element subgroup{1, sr i}, withTauCeti.dihedralSr_ne_oneandTauCeti.zpowers_dihedralSr_ne_topreading off that it is nontrivial, and proper except inDihedralGroup 1.TauCeti.isComplement'_dihedralRotations_zpowers_sr: the rotation subgroup and the subgroup generated by a reflection are complementary, at every degree, soDihedralGroup n = C_n ⋊ C₂.TauCeti.conj_eq_inv_of_notMem_dihedralRotationsandTauCeti.conjNormal_eq_inv_of_notMem_dihedralRotations: conjugation by a reflection inverts every rotation, in the ambient group and inside the rotation subgroup.
The rotations r 0, …, r (n-1) of DihedralGroup n, each followed by the corresponding
reflection. For n ≠ 0 this lists all 2 * n elements of the group, which is
TauCeti.mem_dihedralElements. The body is exposed because a kernel computation over the group —
such as the class data of TauCeti.dihedralClassData — has to reduce it.
Equations
- TauCeti.dihedralElements n = List.flatMap (fun (i : ℕ) => [DihedralGroup.r ↑i, DihedralGroup.sr ↑i]) (List.range n)
Instances For
The enumeration TauCeti.dihedralElements exhausts the dihedral group.
The dihedral group of order 6, the symmetric group on three letters, has exponent 6.
The dihedral group of order 8 has exponent 4.
Recognizing a dihedral group #
A group generated by two involutions s and t, neither of them the identity, is dihedral: its
rotation subgroup is generated by c = s * t, and its reflections are the elements s * c ^ k.
Turning that into an isomorphism means indexing the powers of c by ZMod n, where n is the
order of c; the index i is read as the integer ZMod.cast i, and TauCeti.dihedralHom is the
resulting homomorphism. Taking that representative in ℤ rather than in ℕ costs nothing and
covers the modulus n = 0, where ZMod 0 is ℤ and an element of order 0 is one of infinite
order: the criterion then recognizes the infinite dihedral group.
Constructing the homomorphism itself only needs c ^ n = 1. Its image is the subgroup generated
by the involutions even when the order of c is smaller than n; exact order is needed for
injectivity. At n = 0 the power relation is automatic, so any pair of involutions defines a map
out of the infinite dihedral group.
The work is in injectivity. On the rotations it is the definition of the order of c. On the
reflections it is the observation that s * c ^ k = 1 puts s inside the abelian subgroup
generated by c, so that s both inverts and centralizes c; then c is its own inverse, and the
parity of k makes s or t the identity. Both hypotheses s ≠ 1 and t ≠ 1 are therefore
needed: for s = 1 the group is generated by the single involution t while orderOf (s * t) = 2,
so it is not the dihedral group of order 4.
The homomorphism out of the dihedral group determined by two involutions in a monoid whose
product satisfies (s * t) ^ n = 1. The involutions are units, so rotations can be evaluated at
integer representatives even when n = 0. The formulas are TauCeti.dihedralHom_r_units and
TauCeti.dihedralHom_sr_units; for division monoids they simplify to TauCeti.dihedralHom_r
and TauCeti.dihedralHom_sr. At n = 0 the power relation is automatic, so the map exists for
every pair of involutions, regardless of the order of their product.
Equations
- TauCeti.dihedralHom hs ht hn = (Units.coeHom M).comp (TauCeti.dihedralGroupHom✝ ⋯ ⋯ ⋯)
Instances For
A rotation maps to the corresponding integer power of the product of the two units.
Two involutions other than the identity embed the dihedral group in a monoid. If neither
of s and t is the identity, then TauCeti.dihedralHom is injective, where n is the order of
s * t.
TauCeti.dihedralHom sends the rotation r i to the power (s * t) ^ i
in a division monoid.
TauCeti.dihedralHom sends the reflection sr i to s * (s * t) ^ i
in a division monoid.
A group generated by two involutions other than the identity is dihedral. If the
involutions s and t generate G and neither is the identity, then TauCeti.dihedralHom
identifies G with the dihedral group of order 2 * n, where n is the order of s * t.
A group generated by two involutions other than the identity is the dihedral group of order
twice the order of their product. The isomorphism is TauCeti.dihedralHom: the rotation r i is
the power (s * t) ^ i, and the reflection sr i is s * (s * t) ^ i.
It is what identifies the Weyl group of a rank-two root system in
TauCeti.nonempty_dihedralGroup_mulEquiv_weylGroup.
Equations
- TauCeti.dihedralGroupMulEquiv hs ht hs1 ht1 hn hgen = MulEquiv.ofBijective (TauCeti.dihedralHom hs ht ⋯) ⋯
Instances For
A group generated by two involutions other than the identity is the dihedral group of order
twice the order of their product, the existential form of
TauCeti.dihedralGroupMulEquiv.
The rotation subgroup #
The rotations form a subgroup of index 2, and the cleanest way to get it — together with its
normality — is as the kernel of the reflection parity, the homomorphism onto ZMod 2 that
records whether an element is a rotation or a reflection. The relation that makes the dihedral
group dihedral, s r s⁻¹ = r⁻¹, is then the statement that conjugation by anything outside the
rotation subgroup inverts every rotation.
The reflection parity of a dihedral element: 0 on the rotations r i and 1 on the
reflections sr i. Written multiplicatively so that it is a MonoidHom whose kernel is the
rotation subgroup.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The reflection parity is onto.
The rotation subgroup of DihedralGroup n, the kernel of the reflection parity. It is
normal of index 2, and TauCeti.dihedralRotationsMulEquiv identifies it with
Multiplicative (ZMod n), so it is cyclic (TauCeti.isCyclic_dihedralRotations) and in particular
commutative.
Equations
Instances For
Membership in the rotation subgroup is being a rotation.
A rotation lies in the rotation subgroup. Not a simp lemma: simp already closes this
through TauCeti.mem_dihedralRotations_iff; it is kept as the membership proof to hand to the
subtype constructor.
A reflection does not lie in the rotation subgroup. Not a simp lemma, for the same reason as
TauCeti.r_mem_dihedralRotations.
The rotation subgroup has index 2.
The rotation subgroup has finite index, for every n -- including n = 0, where
DihedralGroup n is infinite.
The rotation subgroup has n elements: it has index 2 in a group of order 2 * n. For
n = 0 both sides are the junk value 0 that Nat.card takes on an infinite group.
Not a simp lemma: TauCeti.mem_dihedralRotations_iff rewrites the membership predicate inside
the coercion, so the left-hand side here is not in simp-normal form.
Conjugation by a reflection inverts every rotation. This is the defining dihedral relation
s r s⁻¹ = r⁻¹, stated for the subgroup rather than for a chosen generator; it is what makes the
conjugate of a linear character of the rotation subgroup its inverse.
Conjugation by a reflection inverts every rotation, inside the rotation subgroup: this is
TauCeti.conj_eq_inv_of_notMem_dihedralRotations read as an equality in dihedralRotations n,
where the conjugation action of the ambient group on a normal subgroup lives.
The rotation subgroup is ZMod n written multiplicatively: the rotation r i has
coordinate i. This is the canonical coordinate on TauCeti.dihedralRotations, and it is what
lets a character of the rotation subgroup be named by a single n-th root of unity.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The rotation subgroup is cyclic, Multiplicative (ZMod n) being so; in particular it is
commutative.
The subgroup generated by a reflection #
A reflection is not the identity.
The subgroup generated by a reflection is {1, sr i}.
The subgroup generated by a reflection is proper, except in DihedralGroup 1, the group of
order two that a single reflection exhausts.
A rotation lying in the subgroup generated by a reflection is the identity: the two subgroups meet only there.
The rotation subgroup and a reflection subgroup are complementary at every degree, so
DihedralGroup n = C_n ⋊ C₂. This holds for every n, including n = 0, where it presents the
infinite dihedral group as ℤ ⋊ C₂.