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 φ = Con.Quotient (HNNExtension.con G A B φ)
Instances For
The canonical embedding G →* HNNExtension G A B φ
Equations
- HNNExtension.of = MonoidHom.comp (Con.mk' (HNNExtension.con G A B φ)) Monoid.Coprod.inl
Instances For
The stable letter of the HNNExtension
Equations
- HNNExtension.t = (MonoidHom.comp (Con.mk' (HNNExtension.con G A B φ)) Monoid.Coprod.inr) (Multiplicative.ofAdd 1)
Instances For
Define a function HNNExtension G A B φ →* H
, by defining it on G
and t
Equations
- One or more equations did not get rendered due to their size.
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
- One or more equations did not get rendered due to their size.
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
Equations
- (_ : Nonempty (HNNExtension.NormalWord.TransversalPair G A B)) = (_ : Nonempty (HNNExtension.NormalWord.TransversalPair G A B))
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
The empty reduced word.
Equations
- HNNExtension.NormalWord.ReducedWord.empty G A B = { head := 1, toList := [], chain := (_ : List.Chain' (fun (a b : ℤˣ × G) => a.2 ∈ HNNExtension.toSubgroup A B a.1 → a.1 = b.1) []) }
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
The empty word
Equations
- One or more equations did not get rendered due to their size.
Instances For
The NormalWord
representing an element g
of the group G
, which is just the element g
itself.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- HNNExtension.NormalWord.instInhabitedNormalWord = { default := HNNExtension.NormalWord.empty }
Equations
- One or more equations did not get rendered due to their size.
Equations
- (_ : FaithfulSMul G (HNNExtension.NormalWord d)) = (_ : FaithfulSMul G (HNNExtension.NormalWord d))
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
- One or more equations did not get rendered due to their size.
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
- One or more equations did not get rendered due to their size.
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 (List.head? w.toList) = 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
- One or more equations did not get rendered due to their size.
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
- (_ : FaithfulSMul (HNNExtension G A B φ) (HNNExtension.NormalWord d)) = (_ : FaithfulSMul (HNNExtension G A B φ) (HNNExtension.NormalWord d))
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
.