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;
reserve f,g for Morphism of C;

theorem Th58:
  c is_a_product_wrt p1,p2 & h in Hom(c,c) & p1(*)h = p1 & p2(*)h = p2
  implies h = id c
proof
  assume that
A1: dom p1 = c & dom p2 = c and
A2: for d,f,g st f in Hom(d,cod p1) & g in Hom(d,cod p2) ex h st h in
  Hom(d,c) & for k st k in Hom(d,c) holds p1(*)k = f & p2(*)k = g iff h = k and
A3: h in Hom(c,c) & p1(*)h = p1 & p2(*)h = p2;
  p1 in Hom(c,cod p1) & p2 in Hom(c,cod p2) by A1;
 then consider i such that
  i in Hom(c,c) and
A4: for k st k in Hom(c,c) holds p1(*)k = p1 & p2(*)k = p2 iff i = k by A2;
A5: id c in Hom(c,c) by CAT_1:27;
  p1(*)(id c) = p1 & p2(*)(id c) = p2 by A1,CAT_1:22;
  hence id c = i by A4,A5
    .= h by A3,A4;
end;
