End ExponentPextraspecialTheory.
Section GeneralExponentPextraspecialTheory.
Variable p : nat.

(* Specifications: *)
Lemma pX1p2id : p^{1+2*1} \isog p^{1+2}.
Lemma pX1p2n_pgroup n : prime p -> p.-group p^{1+2*n}.
(* This is part of the existence half of Aschbacher (23.13) and (23.14) *)
Lemma pX1p2n_extraspecial n : prime p -> n > 0 -> extraspecial p^{1+2*n}.
(* This is Aschbacher (23.12) *)
Lemma Ohm1_extraspecial_odd (gT : finGroupType) (G : {group gT}) :
p.-group G -> extraspecial G -> odd #|G| ->
let Y := 'Ohm_1(G) in
[/\ exponent Y = p, #|G : Y| %| p
& Y != G ->
exists E : {group gT},
[/\ #|G : Y| = p, #|E| = p \/ extraspecial E,
exists2 X : {group gT}, #|X| = p & X \x E = Y
& exists M : {group gT},
[/\ M \isog 'Mod_(p ^ 3), M \* E = G & M :&: E = 'Z(M)]]].
(* This is the uniqueness half of Aschbacher (23.13); the proof incorporates *)
(* in part the proof that symplectic spaces are hyperbolic (19.16).          *)
Lemma isog_pX1p2n n (gT : finGroupType) (G : {group gT}) :
prime p -> extraspecial G -> #|G| = (p ^ n.*2.+1)%N -> exponent G %| p ->
G \isog p^{1+2*n}.