The p-core and the 2-core O₂(G) (Stage A) #
This file builds the machinery of the p-core Oₚ(G) — the largest normal
p-subgroup of G — and specialises it to the 2-core O₂(G), the wild
subgroup that controls the Q₂ presentation.
Mathlib (as of this toolchain) has no pCore / Fitting-subgroup API, so we
define it here as the join (sSup) of all normal p-subgroups and develop the
interface used by the rest of the formalisation:
pCore,twoCore— the definitions;pCore_normal/twoCore_normal— normality (any group);pCore_isPGroup— for a finite group the join really is ap-group (the substantive lemma: a finite directed join of normalp-subgroups, proved byFinset.sup_induction);normal_pSubgroup_le_pCore— maximality;mem_twoCore_iff_normal_closure_is_two_group— the characterisation used in Proposition 2.3 (current_manuscript, §2): a single element lies inO₂(G)iff the normal closure it generates is a 2-group;hom_image_twoCore_le_twoCore— functoriality under surjections (the epimorphism sends the wild subgroup into the target 2-core);quotient_by_twoCore_has_no_nontrivial_normal_two_subgroup—O₂(G/O₂(G)) = 1, the fact that makes the wild subgroup characteristic (Lemma 3.3 /lem:o2tame).
All proofs are constructive and sorry-free; the p-group facts come from
Mathlib.GroupTheory.PGroup.
The p-core Oₚ(G): the join of all normal p-subgroups of G.
For a finite group this is the unique largest normal p-subgroup
(pCore_isPGroup, normal_pSubgroup_le_pCore). The definition itself makes
sense for any group, and normality holds unconditionally (pCore_normal).
Instances For
The 2-core O₂(G) — the wild subgroup of the Q₂ presentation.
Equations
Instances For
For a finite group, the p-core is itself a normal p-subgroup.
The join of all normal p-subgroups is a finite supremum (there are finitely
many subgroups), and the class of normal p-subgroups is closed under binary
join (IsPGroup.to_sup_of_normal_right + Subgroup.sup_normal) and contains
⊥; Finset.sup_induction then propagates the property to the whole join.
Characterisation of membership: x ∈ Oₚ(G) iff the normal closure of x
is a p-group. This is the finite-target criterion behind Proposition 2.3.
Functoriality under surjections: a surjective homomorphism carries the
p-core into the p-core of the target. (Its image is a normal p-subgroup.)
Oₚ(G / Oₚ(G)) = 1: the quotient by the p-core has no nontrivial normal
p-subgroup. Equivalently, the p-core is idempotent in the sense that
passing to the quotient annihilates it.
The 2-core interface #
The four lemmas named in the Stage A specification, specialised to p = 2.
A surjection carries the 2-core into the target 2-core (functoriality): the
image of the wild subgroup under an epimorphism lands in O₂ of the target.
The quotient by the 2-core has no nontrivial normal 2-subgroup, i.e.
O₂(G / O₂(G)) = 1. This is what makes the wild subgroup characteristic
(lem:o2tame).