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