reserve
  I for set,
  E for non empty set;

theorem
  for C being category, A being ObjectsFamily of I,C,
      C1,C2 being Object of C
  st C1 is A-CatProduct-like & C2 is A-CatProduct-like
  holds C1,C2 are_iso
  proof
    let C be category;
    let A be ObjectsFamily of I,C;
    let C1,C2 be Object of C;
    assume that
A1: C1 is A-CatProduct-like and
A2: C2 is A-CatProduct-like;
    per cases;
    suppose I is empty;
      hence thesis by A1,A2,ALTCAT_3:28;
    end;
    suppose I is non empty;
      then reconsider I as non empty set;
      reconsider A as ObjectsFamily of I,C;
      consider P1 being MorphismsFamily of C1,A such that
A3:   P1 is feasible and
A4:   P1 is projection-morphisms by A1;
      consider P2 being MorphismsFamily of C2,A such that
A5:   P2 is feasible and
A6:   P2 is projection-morphisms by A2;
      consider f1 being Morphism of C2,C1 such that
A7:   f1 in <^C2,C1^> and
A8:   for i being Element of I holds P2.i = P1.i * f1 and
      for fa being Morphism of C2,C1 st
      for i being Element of I holds P2.i = P1.i * fa
      holds f1 = fa by A4,A5;
      consider g1 being Morphism of C1,C1 such that
      g1 in <^C1,C1^> and
      for i being Element of I holds P1.i = P1.i * g1 and
A9:   for fa being Morphism of C1,C1 st
      for i being Element of I holds P1.i = P1.i * fa
      holds g1 = fa by A3,A4;
      consider f2 being Morphism of C1,C2 such that
A10:   f2 in <^C1,C2^> and
A11:   for i being Element of I holds P1.i = P2.i * f2 and
      for fa being Morphism of C1,C2 st
      for i being Element of I holds P1.i = P2.i * fa
      holds f2 = fa by A3,A6;
      consider g2 being Morphism of C2,C2 such that
      g2 in <^C2,C2^> and
      for i being Element of I holds P2.i = P2.i * g2 and
A12:  for fa being Morphism of C2,C2 st
      for i being Element of I holds P2.i = P2.i * fa
      holds g2 = fa by A5,A6;
      thus <^C1,C2^> <> {} & <^C2,C1^> <> {} by A7,A10;
      take f2;
A13:  f2 is retraction
      proof
        take f1;
        now
          let i be Element of I;
          P2.i in <^C2,A.i^> by A5;
          hence P2.i = P2.i * idm C2 by ALTCAT_1:def 17;
        end;
        then
A14:    g2 = idm C2 by A12;
        now
          let i be Element of I;
          P2.i in <^C2,A.i^> by A5;
          hence P2.i * (f2 * f1) = P2.i * f2 * f1 by A7,A10,ALTCAT_1:21
          .= P1.i * f1 by A11
          .= P2.i by A8;
        end;
        hence f2 * f1 = idm C2 by A14,A12;
      end;
      f2 is coretraction
      proof
        take f1;
        now
          let i be Element of I;
          P1.i in <^C1,A.i^> by A3;
          hence P1.i = P1.i * idm C1 by ALTCAT_1:def 17;
        end;
        then
A15:    g1 = idm C1 by A9;
        now
          let i be Element of I;
          P1.i in <^C1,A.i^> by A3;
          hence P1.i * (f1 * f2) = P1.i * f1 * f2 by A7,A10,ALTCAT_1:21
          .= P2.i * f2 by A8
          .= P1.i by A11;
        end;
        hence f1 * f2 = idm C1 by A15,A9;
      end;
      hence thesis by A7,A10,A13,ALTCAT_3:6;
    end;
  end;
