(* Central product *)

(* Specifications: *)
Lemma cprod1g : left_id 1 cprod.
Lemma cprod_normal2 A B G : A \* B = G -> A <| G /\ B <| G.
Lemma bigcprodW I (r : seq I) P F G :
\big[cprod/1]_(i <- r | P i) F i = G -> \prod_(i <- r | P i) F i = G.
Lemma bigcprodWY I (r : seq I) P F G :
\big[cprod/1]_(i <- r | P i) F i = G -> << \bigcup_(i <- r | P i) F i >> = G.
Lemma triv_cprod A B : (A \* B == 1) = (A == 1) && (B == 1).
Lemma cprod_ntriv A B : A != 1 -> B != 1 ->
A \* B =
if [&& group_set A, group_set B & B \subset 'C(A)] then A * B else set0.
Lemma trivg0 : (@set0 gT == 1) = false.
Lemma cprodA : associative cprod.
Canonical cprod_law := Monoid.Law cprodA cprod1g cprodg1.