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