reserve I for set,
  x,x1,x2,y,z for set,
  A for non empty set;
reserve C,D for Category;
reserve a,b,c,d for Object of C;
reserve f,g,h,i,j,k,p1,p2,q1,q2,i1,i2,j1,j2 for Morphism of C;
reserve f for Morphism of a,b,
        g for Morphism of b,a;
reserve g for Morphism of b,c;

theorem
 Hom(a,b) <> {} & Hom(b,a) <> {} &
  g*f is retraction implies g is retraction
proof assume
A1: Hom(a,b) <> {} & Hom(b,a) <> {};
  assume
A2: Hom(a,c) <> {} & Hom(c,a) <> {};
  given i being Morphism of c,a  such that
A3: (g*f)*i = id c;
  thus
A4: Hom(b,c) <> {} & Hom(c,b) <> {} by A2,A1,CAT_1:24;
  take f*i;
  thus g*(f*i) = id c by A2,A3,A4,A1,CAT_1:25;
end;
