
theorem
  for I being 2-element set
  for J being TopSpace-yielding non-Empty ManySortedSet of I
  for i,j being Element of I, P being Subset of product Carrier J st i <> j
  holds P in FinMeetCl product_prebasis J iff
    ex V being Subset of J.i, W being Subset of J.j
    st V is open & W is open & P = product((i,j) --> (V,W))
proof
  let I be 2-element set;
  let J be TopSpace-yielding non-Empty ManySortedSet of I;
  let i,j be Element of I, P be Subset of product Carrier J;
  assume A1: i <> j;
  hence P in FinMeetCl product_prebasis J implies
    ex V being Subset of J.i, W being Subset of J.j
    st V is open & W is open & P = product((i,j) --> (V,W)) by Lm9;
  given V being Subset of J.i, W being Subset of J.j such that
    A2: V is open & W is open & P = product((i,j) --> (V,W));
  ex Y being Subset-Family of product Carrier J
    st Y c= product_prebasis J & Y is finite & P = Intersect Y
  proof
    set V0 = product(Carrier J +* (i,V));
    set W0 = product(Carrier J +* (j,W));
    set Y = {V0,W0};
    A3: dom Carrier J = I by PARTFUN1:def 2;
    (Carrier J).i = [#](J.i) & (Carrier J).j = [#](J.j) by PENCIL_3:7;
    then a4: (Carrier J).i = the carrier of J.i &
      (Carrier J).j = the carrier of J.j by STRUCT_0:def 3;
    A5: V0 c= product Carrier J & W0 c= product Carrier J by a4,A3, Th39;
    then reconsider Y as Subset-Family of product Carrier J by ZFMISC_1:32;
    take Y;
    A6: V0 = product((i,j) --> (V,(Carrier J).j)) &
      W0 = product((i,j) --> ((Carrier J).i,W)) by A1, Th34;
    then V0 = product((i,j) --> (V,[#](J.j))) &
      W0 = product((i,j) --> ([#](J.i),W)) by PENCIL_3:7;
    then V0 in product_prebasis J & W0 in product_prebasis J
      by A1, A2, A5, Th69;
    hence Y c= product_prebasis J & Y is finite by ZFMISC_1:32;
    P c= V0 & P c= W0 by A2, a4, A6, Th28;
    then A7: P c= V0 /\ W0 by XBOOLE_1:19;
    V0 /\ W0 c= P
    proof
      let x be object;
      assume x in V0 /\ W0;
      then A8: x in V0 & x in W0 by XBOOLE_0:def 4;
      then consider g being Function such that
        A9: g = x & dom g = dom (i,j) --> (V,(Carrier J).j) and
        A10: for y being object st y in dom (i,j) --> (V,(Carrier J).j)
          holds g.y in ((i,j) --> (V,(Carrier J).j)).y by A6, CARD_3:def 5;
      A12: dom g = {i,j} by A9, FUNCT_4:62
        .= dom (i,j) --> (V,W) by FUNCT_4:62;
      for y being object st y in dom (i,j) --> (V,W)
        holds g.y in ((i,j) --> (V,W)).y
      proof
        let y be object;
        assume y in dom (i,j) --> (V,W);
        then A13: y in {i,j} by FUNCT_4:62;
        then per cases by TARSKI:def 2;
        suppose A14: y = i;
          then A15: ((i,j) --> (V,(Carrier J).j)).y = V by A1, FUNCT_4:63
            .= ((i,j) --> (V,W)).y by A1, A14, FUNCT_4:63;
          y in dom (i,j) --> (V,(Carrier J).j) by A13, FUNCT_4:62;
          hence thesis by A10, A15;
        end;
        suppose A16: y = j;
          then A17: ((i,j) --> ((Carrier J).i,W)).y = W by FUNCT_4:63
            .= ((i,j) --> (V,W)).y by A16, FUNCT_4:63;
          y in dom (i,j) --> ((Carrier J).i,W) by A13, FUNCT_4:62;
          hence thesis by A6, A8, A9, CARD_3:9, A17;
        end;
      end;
      hence x in P by A2, A9, A12, CARD_3:9;
    end;
    then P = V0 /\ W0 by A7, XBOOLE_0:def 10;
    then P = meet Y by SETFAM_1:11;
    hence P = Intersect Y by SETFAM_1:def 9;
  end;
  hence P in FinMeetCl product_prebasis J by CANTOR_1:def 3;
end;
