Variables (A B C D : {set gT}).
Hypotheses (nBA : A \subset 'N(B)) (nCA : A \subset 'N(C)).

(* Specifications: *)
Lemma norms_gen : A \subset 'N(<<B>>).
Lemma normsD : A \subset 'N(B :\: C).
End norm_trans.
Lemma normsIG A B G : A \subset 'N(B) -> A :&: G \subset 'N(B :&: G).
Lemma norms_bigcup I r (P : pred I) A (B_ : I -> {set gT}) :
A \subset \bigcap_(i <- r | P i) 'N(B_ i) ->
A \subset 'N(\bigcup_(i <- r | P i) B_ i).
Lemma normsD1 A B : A \subset 'N(B) -> A \subset 'N(B^#).
Lemma normalP A B : reflect (A \subset B /\ {in B, normalised A}) (A <| B).
Lemma normal1 G : 1 <| G.
Lemma normalY G A B : A <| G -> B <| G -> A <*> B <| G.
Lemma normalYl G H : (H <| H <*> G) = (G \subset 'N(H)).
Lemma norm_normalI G A : G \subset 'N(A) -> G :&: A <| G.
Lemma normal_subnorm G H : (H <| 'N_G(H)) = (H \subset G).
Lemma gcore_normal A G : A \subset G -> gcore A G <| G.
Lemma gcore_max A B G : B \subset A -> G \subset 'N(B) -> B \subset gcore A G.
Lemma sub_gcore A B G :
G \subset 'N(B) -> (B \subset gcore A G) = (B \subset A).
(* An elementary proof that subgroups of index 2 are normal; it is almost as  *)
(* short as the "advanced" proof using group actions; besides, the fact that  *)
(* the coset is equal to the complement is used in extremal.v.                *)
Lemma rcoset_index2 G H x :
H \subset G -> #|G : H| = 2 -> x \in G :\: H -> H :* x = G :\: H.
Lemma index2_normal G H : H \subset G -> #|G : H| = 2 -> H <| G.
Lemma cent1P x y : reflect (commute x y) (x \in 'C[y]).
Lemma cent1id x : x \in 'C[x]. Proof. exact/cent1P. Qed.
Lemma cent1E x y : (x \in 'C[y]) = (x * y == y * x).
Lemma cents_norm A B : A \subset 'C(B) -> A \subset 'N(B).
Lemma cent_norm A : 'N(A) \subset 'N('C(A)).
Lemma cent_gen A : 'C(<<A>>) = 'C(A).
Lemma commG1P A B : reflect ([~: A, B] = 1) (A \subset 'C(B)).
Lemma abelianE A : abelian A = (A \subset 'C(A)). Proof. by []. Qed.
Lemma abelian1 : abelian [1 gT]. Proof. exact: sub1G. Qed.
Lemma abelianS A B : A \subset B -> abelian B -> abelian A.
Lemma abelianM G H :
abelian (G * H) = [&& abelian G, abelian H & H \subset 'C(G)].