 reserve I for non empty set;
 reserve i for Element of I;
 reserve F for Group-Family of I;
 reserve G for Group;
reserve S for Subgroup-Family of F;
reserve f for Homomorphism-Family of G, F;

theorem
  for G being Group
  for Fam being Subset of Subgroups G
  holds G is_internal_product_of Fam
  iff (Omega).G is_internal_product_of Fam
proof
  let G be Group;
  let Fam be Subset of Subgroups G;
  hereby
    assume A1: G is_internal_product_of Fam;
    for H being strict Subgroup of G st H in Fam
    holds H is normal Subgroup of (Omega).G
    proof
      let H be strict Subgroup of G;
      assume H in Fam;
      then H is normal Subgroup of G by A1;
      hence H is normal Subgroup of (Omega).G
        by GROUP_6:8, GROUP_2:57, GROUP_2:def 5;
    end;
    hence (Omega).G is_internal_product_of Fam by A1;
  end;
  assume A2: (Omega).G is_internal_product_of Fam;
  for H being strict Subgroup of G st H in Fam
  holds H is normal Subgroup of G
  proof
    let H be strict Subgroup of G;
    assume H in Fam;
    then H is normal Subgroup of (Omega).G by A2;
    hence H is normal Subgroup of G by ThMinorAnnoyance;
  end;
  hence G is_internal_product_of Fam by A2;
end;
