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;

theorem
  f is coretraction implies f is monic
proof assume
A1: Hom(a,b) <> {} & Hom(b,a) <> {};
  given g such that
A2: g*f = id a;
  thus Hom(a,b) <> {} by A1;
  let c be Object of C such that
A3: Hom(c,a) <> {};
  let p1,p2 be Morphism of c,a;
  assume
A4: f*p1 = f*p2;
  thus p1 = g*f*p1 by A3,A2,CAT_1:28
    .= g*(f*p2) by A3,A1,A4,CAT_1:25
    .= g*f*p2 by A3,A1,CAT_1:25
    .= p2 by A3,A2,CAT_1:28;
end;
