Section ExtremalClass.
Variables (gT : finGroupType) (G : {group gT}).
Inductive extremal_group_type :=
ModularGroup | Dihedral | SemiDihedral | Quaternion | NotExtremal.
Definition index_extremal_group_type c :=
match c with
| ModularGroup => 0
| Dihedral => 1
| SemiDihedral => 2
| Quaternion => 3
| NotExtremal => 4
end%N.
Definition enum_extremal_groups :=
[:: ModularGroup; Dihedral; SemiDihedral; Quaternion].
End ExtremalClass.

(* This is Aschbacher (23.5) *)
Lemma cyclic_SCN gT p (G U : {group gT}) :
p.-group G -> U \in 'SCN(G) -> ~~ abelian G -> cyclic U ->
[/\ p = 2, #|G : U| = 2 & extremal2 G]
\/ exists M : {group gT},
[/\ M :=: 'C_G('Mho^1(U)), #|M : U| = p, extremal_class M = ModularGroup,
'Ohm_1(M)%G \in 'E_p^2(G) & 'Ohm_1(M) \char G].