reserve x, y for set;
reserve D for non empty set;
reserve UN for Universe;
reserve C for Category;
reserve O for non empty Subset of the carrier of C;
reserve G,H for AddGroup;

theorem Th19:
  for f,g being strict GroupMorphism st dom g = cod f holds ex G1,
G2,G3 being AddGroup, f0 being Function of G1,G2, g0 being Function of G2,G3 st
  f = GroupMorphismStr(# G1,G2,f0#) & g = GroupMorphismStr(# G2,G3,g0#) & g*f =
  GroupMorphismStr(# G1,G3,g0*f0#)
proof
  let f,g be strict GroupMorphism such that
A1: dom g = cod f;
  set G1 = dom f,G2 = cod f, G3 = cod g;
  reconsider f9 = f as strict Morphism of G1,G2 by Def12;
  reconsider g9 = g as strict Morphism of G2,G3 by A1,Def12;
  consider f0 being Function of G1,G2 such that
A2: f9 = GroupMorphismStr(# G1,G2,f0#);
  consider g0 being Function of G2,G3 such that
A3: g9 = GroupMorphismStr(# G2,G3,g0#) by Th13;
  take G1,G2,G3,f0,g0;
  thus thesis by A2,A3,Th18;
end;
