End IsoCyclic.
(* Metacyclic groups. *)
Section Metacyclic.
Variable gT : finGroupType.
Implicit Types (A : {set gT}) (G H : {group gT}).
Definition metacyclic A :=
[exists H : {group gT}, [&& cyclic H, H <| A & cyclic (A / H)]].

(* Specifications: *)
Lemma metacyclicP A :
reflect (exists H : {group gT}, [/\ cyclic H, H <| A & cyclic (A / H)])
(metacyclic A).
Lemma cyclic_metacyclic A : cyclic A -> metacyclic A.
Lemma metacyclicS G H : H \subset G -> metacyclic G -> metacyclic H.
End Metacyclic.