let G be Group; for I being non empty set
for F being Subgroup-Family of I,G holds
( G is_internal_product_of F iff ( ( for i being Element of I holds F . i is normal Subgroup of G ) & multMagma(# the carrier of G, the multF of G #) = gr (Union (Carrier F)) & ( for i being Element of I
for J being Subset of I st J = I \ { j where j is Element of I : F . i = F . j } holds
for N being strict normal Subgroup of G st N = gr (Union (Carrier (F | J))) holds
(F . i) /\ N = (1). G ) ) )
let I be non empty set ; for F being Subgroup-Family of I,G holds
( G is_internal_product_of F iff ( ( for i being Element of I holds F . i is normal Subgroup of G ) & multMagma(# the carrier of G, the multF of G #) = gr (Union (Carrier F)) & ( for i being Element of I
for J being Subset of I st J = I \ { j where j is Element of I : F . i = F . j } holds
for N being strict normal Subgroup of G st N = gr (Union (Carrier (F | J))) holds
(F . i) /\ N = (1). G ) ) )
let F be Subgroup-Family of I,G; ( G is_internal_product_of F iff ( ( for i being Element of I holds F . i is normal Subgroup of G ) & multMagma(# the carrier of G, the multF of G #) = gr (Union (Carrier F)) & ( for i being Element of I
for J being Subset of I st J = I \ { j where j is Element of I : F . i = F . j } holds
for N being strict normal Subgroup of G st N = gr (Union (Carrier (F | J))) holds
(F . i) /\ N = (1). G ) ) )
thus
( G is_internal_product_of F implies ( ( for i being Element of I holds F . i is normal Subgroup of G ) & multMagma(# the carrier of G, the multF of G #) = gr (Union (Carrier F)) & ( for i being Element of I
for J being Subset of I st J = I \ { j where j is Element of I : F . i = F . j } holds
for N being strict normal Subgroup of G st N = gr (Union (Carrier (F | J))) holds
(F . i) /\ N = (1). G ) ) )
( ( for i being Element of I holds F . i is normal Subgroup of G ) & multMagma(# the carrier of G, the multF of G #) = gr (Union (Carrier F)) & ( for i being Element of I
for J being Subset of I st J = I \ { j where j is Element of I : F . i = F . j } holds
for N being strict normal Subgroup of G st N = gr (Union (Carrier (F | J))) holds
(F . i) /\ N = (1). G ) implies G is_internal_product_of F )
assume A0:
for i being Element of I holds F . i is normal Subgroup of G
; ( not multMagma(# the carrier of G, the multF of G #) = gr (Union (Carrier F)) or ex i being Element of I ex J being Subset of I st
( J = I \ { j where j is Element of I : F . i = F . j } & ex N being strict normal Subgroup of G st
( N = gr (Union (Carrier (F | J))) & not (F . i) /\ N = (1). G ) ) or G is_internal_product_of F )
assume A1:
multMagma(# the carrier of G, the multF of G #) = gr (Union (Carrier F))
; ( ex i being Element of I ex J being Subset of I st
( J = I \ { j where j is Element of I : F . i = F . j } & ex N being strict normal Subgroup of G st
( N = gr (Union (Carrier (F | J))) & not (F . i) /\ N = (1). G ) ) or G is_internal_product_of F )
assume A2:
for i being Element of I
for J being Subset of I st J = I \ { j where j is Element of I : F . i = F . j } holds
for N being strict normal Subgroup of G st N = gr (Union (Carrier (F | J))) holds
(F . i) /\ N = (1). G
; G is_internal_product_of F
reconsider I0 = I as set ;
reconsider F0 = F as Subgroup-Family of I0,G ;
for i0 being Element of I0
for J0 being Subset of I0 st J0 = I0 \ { j where j is Element of I : F . i0 = F . j } holds
for N being strict normal Subgroup of G st N = gr (Union (Carrier (F0 | J0))) holds
(F0 /. i0) /\ N = (1). G
hence
G is_internal_product_of F
by A0, A1; verum