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
  c is_a_coproduct_wrt i1,i2 & dom i1 is initial implies dom i2,c
  are_isomorphic
proof
  set a = dom i1, b = dom i2;
  assume that
A1: c is_a_coproduct_wrt i1,i2 and
A2: a is initial;
  set f = id(b),g = init(a,b);
  cod g = b & dom g = a by A2,Th38;
  then f in Hom(b,b) & g in Hom(a,b) by CAT_1:27;
  then consider h such that
A3: h in Hom(c,b) and
A4: for k st k in Hom(c,b) holds k(*)i1 = g & k(*)i2 = f iff h = k by A1;
A5: cod h = b by A3,CAT_1:1;
A6: cod i2 = c by A1;
  then reconsider i = i2 as Morphism of b,c by CAT_1:4;
A7: dom h = c by A3,CAT_1:1;
  then
A8: dom(i(*)h) = c by A5,CAT_1:17;
A9: cod i1 = c by A1;
  then
A10: dom(i(*)h(*)i1) = a by A8,CAT_1:17;
A11: cod(i(*)h) = c by A6,A5,CAT_1:17;
  then
A12: i(*)h in Hom(c,c) by A8;
  cod(i(*)h(*)i1) = c by A9,A11,A8,CAT_1:17;
  then
A13: i(*)h(*)i1 = init(a,c) by A2,A10,Th39
    .= i1 by A2,A9,Th39;
A14: Hom(b,c)<>{} by A6,CAT_1:2;
  take i;
  thus Hom(b,c) <> {} & Hom(c,b) <> {} by A6,A3,CAT_1:2;
   reconsider h as Morphism of c,b by A3,CAT_1:def 5;
  take h;
A15: i(*)h(*)i2 = i(*)(h(*)i2) by A6,A5,A7,CAT_1:18
    .= i(*)(id dom i) by A3,A4
    .= i by CAT_1:22;
  thus i*h = i(*)h by A3,A14,CAT_1:def 13
     .= id c by A1,A13,A12,Th83,A15;
  thus id b = h(*)i by A3,A4
      .= h*i by A3,A14,CAT_1:def 13;
end;
