Built with doc-gen4, running Lean4.
Bubbles () indicate interactive fragments: hover for details, tap to reveal contents.
Use Ctrl+βCtrl+βto navigate, Ctrl+π±οΈto focus.
On Mac, use Cmdinstead of Ctrl.
import Mathlib.Data.Fin.Basic
import Mathlib.Algebra.Hom.Group
import UnitConjecture.MetabelianGroup
import UnitConjecture.AddFreeGroup
/-!
## The construction of the group `P`
We construct the group `P` (the *Promislow* or *HantzscheβWendt* group) as a Metabelian group.
This is done via the cocycle construction, using the explicit action and cocycle described in
Section 3.1 of Giles Gardam's paper (https://arxiv.org/abs/2102.11818).
-/
section Components
declare_aesop_rule_sets [P]
/-!
### The components of the group `P`
The group `P` is constructed as a Metabelian group with kernel `K := β€Β³` and quotient `Q := β€/2 Γ β€/2`.
-/
/-! The *kernel* group -/
/-- The *kernel* group - `β€Β³`, the free Abelian group on three generators. -/
@[aesopsafe (rule_sets [P])]
abbrev
inferInstancesection Elements
/-!
### The group elements
-/
namespace K
/-! The generators of the free Abelian group `K`. -/
/-- The first generator of `K`. -/
@[aesopnormunfold (rule_sets [P])]
abbrev
1)
end K
namespace Q
/-! The elements of the Klein Four group `Q`. -/
/-- The identity element of `Q`. -/
@[aesopnormunfold (rule_sets [P]), match_pattern]
abbrev
AddMonoidHom.prodMap
/-- The action of `Q` on `K` by automorphisms.
The action can be given a component-wise description in terms of `id` and `neg`, the identity and negation homomorphisms. -/
@[aesopnormunfold (rule_sets [P]), reducible]
def
β€
/-- A verification that the above action is indeed an action by automorphisms.
This is done automatically with the machinery of decidable equality of homomorphisms on free groups. -/
}
end Action
section Cocycle
/-! ### The cocycle -/
open K Q in
/-- The cocycle in the construction of `P`. -/
@[aesopnormunfold (rule_sets [P]), reducible]
def
0
/-- A verification that the `cocycle` function indeed satisfies the cocycle condition.
This check is performed fully automatically using previously defined decision procedures. -/
instance
}
end Cocycle
section MetabelianGroup
/-!
### The construction of `P`
The construction of the group `P` as a Metabelian group from the given action and cocycle.
-/
/-- the group `P` constructed via the cocycle construction -/
@[aesopnormunfold (rule_sets [P])]
def