Section ExtremalTheory.
Implicit Types (gT : finGroupType) (p q m n : nat).
Definition extremal_generators gT (A : {set gT}) p n xy :=
let: (x, y) := xy in
[/\ #|A| = (p ^ n)%N, x \in A, #[x] = (p ^ n.-1)%N & y \in A :\: <[x]>].

Lemma extremal_generators_facts gT (G : {group gT}) p n x y :
prime p -> extremal_generators G p n (x, y) ->
[/\ p.-group G, maximal <[x]> G, <[x]> <| G,
<[x]> * <[y]> = G & <[y]> \subset 'N(<[x]>)].