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