reserve V for non empty set,
  A,B,A9,B9 for Element of V;
reserve f,f9 for Element of Funcs(V);
reserve m,m1,m2,m3,m9 for Element of Maps V;
reserve a,b for Object of Ens(V);
reserve f,g,f1,f2 for Morphism of Ens(V);
reserve C for Category,
  a,b,a9,b9,c for Object of C,
  f,g,h,f9,g9 for Morphism of C;

theorem Th44:
  dom g = cod f implies hom(a,g(*)f) = hom(a,g)*hom(a,f)
proof
  assume
A1: dom g = cod f;
  then
A2: dom(g(*)f) = dom f by CAT_1:17;
A3: cod(g(*)f) = cod g by A1,CAT_1:17;
  now
    set h = hom(a,g(*)f), h2 = hom(a,g), h1 = hom(a,f);
A4: Hom(dom f,cod f) <> {} by CAT_1:2;
    then
A5: Hom(a,cod f) = {} implies Hom(a,dom f) = {} by CAT_1:24;
    Hom(dom g,cod g) <> {} by CAT_1:2;
    then
A6: Hom(a,cod g) = {} implies Hom(a,dom g) = {} by CAT_1:24;
    hence dom h = Hom(a,dom f) by A1,A2,A3,A5,FUNCT_2:def 1;
    thus
A7: dom(h2*h1) = Hom(a,dom f) by A1,A5,A6,FUNCT_2:def 1;
    let x be object;
    assume
A8: x in Hom(a,dom f);
    then reconsider f9 = x as Morphism of C;
A9: cod f9 = dom f by A8,CAT_1:1;
A10: h1.x in Hom(a,dom g) by A1,A4,A8,CAT_1:24,FUNCT_2:5;
    then reconsider g9 = h1.x as Morphism of C;
    thus h.x = g(*)f(*)f9 by A2,A8,Def18
      .= g(*)(f(*)f9) by A1,A9,CAT_1:18
      .= g(*)g9 by A8,Def18
      .= h2.g9 by A10,Def18
      .= (h2*h1).x by A7,A8,FUNCT_1:12;
  end;
  hence thesis;
end;
