
theorem Th72:
  for I being non empty set
  for J being TopSpace-yielding non-Empty ManySortedSet of I
  for P being Subset of product Carrier J
  for i,j being Element of I st i <> j &
    (ex F being ManySortedSet of I st P = product F &
      for k being Element of I holds F.k c= (Carrier J).k)
  holds <: proj(J,i), proj(J,j) :>.:P = [: proj(J,i).:P, proj(J,j).:P :]
proof
  let I be non empty set;
  let J be TopSpace-yielding non-Empty ManySortedSet of I;
  let P be Subset of product Carrier J;
  let i,j be Element of I;
  assume that A1: i <> j and
    A2: ex F being ManySortedSet of I st P = product F &
      for k being Element of I holds F.k c= (Carrier J).k;
  consider F being ManySortedSet of I such that
    A3: P = product F and
    A4: for k being Element of I holds F.k c= (Carrier J).k by A2;
  per cases;
  suppose A5: F is non-empty;
    for y being object holds y in [: proj(J,i).:P, proj(J,j).:P :]
      implies y in <: proj(J,i), proj(J,j) :>.:P
    proof
      let y be object;
      assume y in [: proj(J,i).:P, proj(J,j).:P :];
      then consider y1, y2 being object such that
        A6: y1 in proj(J,i).:P & y2 in proj(J,j).:P & y = [y1,y2]
        by ZFMISC_1:def 2;
      A7: dom F = I by PARTFUN1:def 2
        .= dom Carrier J by PARTFUN1:def 2;
      i in I & j in I;
      then A8: i in dom F & j in dom F by PARTFUN1:def 2;
      for k being object st k in dom F holds F.k c= (Carrier J).k by A4;
      :: here is the square F.i x F.j I mentioned above
      then proj(Carrier J,i).:P = F.i & proj(Carrier J,j).:P = F.j
        by A3, A5, A7, A8, Th26;
      then A9: proj(J,i).:P = F.i & proj(J,j).:P = F.j by WAYBEL18:def 4;
      set p0 = the Element of product F;
      set p = p0 +* (i,j) --> (y1,y2);
      A10: dom <: proj(J,i), proj(J,j) :> = dom proj(J,i) /\ dom proj(J,j)
          by FUNCT_3:def 7
        .= dom proj(Carrier J,i) /\ dom proj(J,j) by WAYBEL18:def 4
        .= dom proj(Carrier J,i) /\ dom proj(Carrier J,j) by WAYBEL18:def 4;
      then A11: dom <: proj(J,i), proj(J,j) :>
         = dom proj(Carrier J,i) /\ product Carrier J by CARD_3:def 16
        .= product Carrier J /\ product Carrier J by CARD_3:def 16
        .= product Carrier J;
      p in product(F +* (i,j) --> (F.i,F.j)) by A1, A6, A5, A9, Th30;
      then A12: p in P by A3, A8, Th11;
      then A14: p in dom proj(Carrier J,i) & p in dom proj(Carrier J,j)
        by A11,A10, XBOOLE_0:def 4;
      A15: proj(J,i).p = proj(Carrier J,i).p by WAYBEL18:def 4
        .= p.i by A14, CARD_3:def 16
        .= y1 by A1, FUNCT_4:84;
      A16: proj(J,j).p = proj(Carrier J,j).p by WAYBEL18:def 4
        .= p.j by A14, CARD_3:def 16
        .= y2 by A1, FUNCT_4:84;
      <: proj(J,i), proj(J,j) :>.p = [y1,y2] by A11,A12,A15,A16, FUNCT_3:def 7;
      hence thesis by A6, A12, A11, FUNCT_1:def 6;
    end;
    then A17: [: proj(J,i).:P, proj(J,j).:P :] c= <: proj(J,i), proj(J,j) :>.:P
      by TARSKI:def 3;
    <: proj(J,i), proj(J,j) :>.:P c= [: proj(J,i).:P, proj(J,j).:P :]
      by FUNCT_3:56;
    hence thesis by A17, XBOOLE_0:def 10;
  end;
  suppose not F is non-empty;
    then {} in rng F by RELAT_1:def 9;
    then P = {} by A3, CARD_3:26;
    then <: proj(J,i), proj(J,j) :>.:P = {} &  proj(J,i).:P = {};
    hence thesis by ZFMISC_1:90;
  end;
end;
