HNN Extensions of Groups #
This file defines the HNN extension of a group G
, HNNExtension G A B φ
. Given a group G
,
subgroups A
and B
and an isomorphism φ
of A
and B
, we adjoin a letter t
to G
, such
that for any a ∈ A
, the conjugate of of a
by t
is of (φ a)
, where of
is the canonical map
from G
into the HNNExtension
. This construction is named after Graham Higman, Bernhard Neumann
and Hanna Neumann.
Main definitions #
HNNExtension G A B φ
: The HNN Extension of a groupG
, whereA
andB
are subgroups andφ
is an isomorphism betweenA
andB
.HNNExtension.of
: The canonical embedding ofG
intoHNNExtension G A B φ
.HNNExtension.t
: The stable letter of the HNN extension.HNNExtension.lift
: Define a functionHNNExtension G A B φ →* H
, by defining it onG
andt
HNNExtension.of_injective
: The canonical embeddingG →* HNNExtension G A B φ
is injective.HNNExtension.ReducedWord.toList_eq_nil_of_mem_of_range
: Britton's Lemma. If an element ofG
is represented by a reduced word, then this reduced word does not containt
.
The relation we quotient the coproduct by to form an HNNExtension
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The HNN Extension of a group G
, HNNExtension G A B φ
. Given a group G
, subgroups A
and
B
and an isomorphism φ
of A
and B
, we adjoin a letter t
to G
, such that for
any a ∈ A
, the conjugate of of a
by t
is of (φ a)
, where of
is the canonical
map from G
into the HNNExtension
.
Equations
- HNNExtension G A B φ = (HNNExtension.con G A B φ).Quotient
Instances For
The canonical embedding G →* HNNExtension G A B φ
Equations
- HNNExtension.of = (HNNExtension.con G A B φ).mk'.comp Monoid.Coprod.inl
Instances For
The stable letter of the HNNExtension
Equations
- HNNExtension.t = ((HNNExtension.con G A B φ).mk'.comp Monoid.Coprod.inr) (Multiplicative.ofAdd 1)
Instances For
Define a function HNNExtension G A B φ →* H
, by defining it on G
and t
Equations
- HNNExtension.lift f x hx = (HNNExtension.con G A B φ).lift (Monoid.Coprod.lift f ((zpowersHom H) x)) ⋯
Instances For
To avoid duplicating code, we define toSubgroup A B u
and toSubgroupEquiv u
where u : ℤˣ
is 1
or -1
. toSubgroup A B u
is A
when u = 1
and B
when u = -1
,
and toSubgroupEquiv
is φ
when u = 1
and φ⁻¹
when u = -1
. toSubgroup u
is the subgroup
such that for any a ∈ toSubgroup u
, t ^ (u : ℤ) * a = toSubgroupEquiv a * t ^ (u : ℤ)
.
Equations
- HNNExtension.toSubgroup A B u = if u = 1 then A else B
Instances For
To avoid duplicating code, we define toSubgroup A B u
and toSubgroupEquiv u
where u : ℤˣ
is 1
or -1
. toSubgroup A B u
is A
when u = 1
and B
when u = -1
,
and toSubgroupEquiv
is the group ismorphism from toSubgroup A B u
to toSubgroup A B (-u)
.
It is defined to be φ
when u = 1
and φ⁻¹
when u = -1
.
Equations
- HNNExtension.toSubgroupEquiv φ u = if hu : u = 1 then ⋯ ▸ φ else ⋯.mpr φ.symm
Instances For
To put word in the HNN Extension into a normal form, we must choose an element of each right
coset of both A
and B
, such that the chosen element of the subgroup itself is 1
.
The transversal of each subgroup
- compl : ∀ (u : ℤˣ), Subgroup.IsComplement (↑(HNNExtension.toSubgroup A B u)) (self.set u)
We have exactly one element of each coset of the subgroup
Instances For
We have exactly one element of each coset of the subgroup
A reduced word is a head
, which is an element of G
, followed by the product list of pairs.
There should also be no sequences of the form t^u * g * t^-u
, where g
is in
toSubgroup A B u
This is a less strict condition than required for NormalWord
.
- head : G
Every
ReducedWord
is the product of an element of the group and a word made up of letters each of which is in the transversal.head
is that element of the base group. The list of pairs
(ℤˣ × G)
, where each pair(u, g)
represents the elementt^u * g
ofHNNExtension G A B φ
- chain : List.Chain' (fun (a b : ℤˣ × G) => a.2 ∈ HNNExtension.toSubgroup A B a.1 → a.1 = b.1) self.toList
There are no sequences of the form
t^u * g * t^-u
whereg ∈ toSubgroup A B u
Instances For
There are no sequences of the form t^u * g * t^-u
where g ∈ toSubgroup A B u
The empty reduced word.
Equations
- HNNExtension.NormalWord.ReducedWord.empty G A B = { head := 1, toList := [], chain := ⋯ }
Instances For
The product of a ReducedWord
as an element of the HNNExtension
Equations
Instances For
Given a TransversalPair
, we can make a normal form for words in the HNNExtension G A B φ
.
The normal form is a head
, which is an element of G
, followed by the product list of pairs,
t ^ u * g
, where u
is 1
or -1
and g
is the chosen element of its right coset of
toSubgroup A B u
. There should also be no sequences of the form t^u * g * t^-u
where g ∈ toSubgroup A B u
- head : G
- chain : List.Chain' (fun (a b : ℤˣ × G) => a.2 ∈ HNNExtension.toSubgroup A B a.1 → a.1 = b.1) self.toList
Every element
g : G
in the list is the chosen element of its coset
Instances For
Every element g : G
in the list is the chosen element of its coset
The empty word
Equations
- HNNExtension.NormalWord.empty = { head := 1, toList := [], chain := ⋯, mem_set := ⋯ }
Instances For
The NormalWord
representing an element g
of the group G
, which is just the element g
itself.
Equations
- HNNExtension.NormalWord.ofGroup g = { head := g, toList := [], chain := ⋯, mem_set := ⋯ }
Instances For
Equations
- HNNExtension.NormalWord.instInhabited = { default := HNNExtension.NormalWord.empty }
Equations
- HNNExtension.NormalWord.instMulAction = MulAction.mk ⋯ ⋯
Equations
- ⋯ = ⋯
A constructor to append an element g
of G
and u : ℤˣ
to a word w
with sufficient
hypotheses that no normalization or cancellation need take place for the result to be in normal form
Equations
- HNNExtension.NormalWord.cons g u w h1 h2 = { head := g, toList := (u, w.head) :: w.toList, chain := ⋯, mem_set := ⋯ }
Instances For
A recursor to induct on a NormalWord
, by proving the propert is preserved under cons
Equations
- One or more equations did not get rendered due to their size.
Instances For
The action of t^u
on ofGroup g
. The normal form will be
a * t^u * g'
where a ∈ toSubgroup A B (-u)
Equations
- HNNExtension.NormalWord.unitsSMulGroup φ d u g = let g' := ⋯.equiv g; ((HNNExtension.toSubgroupEquiv φ u) g'.1, g'.2)
Instances For
Cancels u w
is a predicate expressing whether t^u
cancels with some occurence
of t^-u
when when we multiply t^u
by w
.
Equations
- HNNExtension.NormalWord.Cancels u w = (w.head ∈ HNNExtension.toSubgroup A B u ∧ Option.map Prod.fst w.toList.head? = some (-u))
Instances For
Multiplying t^u
by w
in the special case where cancellation happens
Equations
- One or more equations did not get rendered due to their size.
Instances For
Multiplying t^u
by a NormalWord
, w
and putting the result in normal form.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A condition for not cancelling whose hypothese are the same as those of the cons
function.
the equivalence given by multiplication on the left by t
Equations
- HNNExtension.NormalWord.unitsSMulEquiv φ = { toFun := HNNExtension.NormalWord.unitsSMul φ 1, invFun := HNNExtension.NormalWord.unitsSMul φ (-1), left_inv := ⋯, right_inv := ⋯ }
Instances For
Equations
- One or more equations did not get rendered due to their size.
The equivalence between elements of the HNN extension and words in normal form.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ⋯ = ⋯
Two reduced words representing the same element of the HNNExtension G A B φ
have the same
length corresponding list, with the same pattern of occurences of t^1
and t^(-1)
,
and also the head
is in the same left coset of toSubgroup A B (-u)
, where u : ℤˣ
is the exponent of the first occurence of t
in the word.
Britton's Lemma. Any reduced word whose product is an element of G
, has no
occurences of t
.