reserve e,u for set;
reserve X, Y for non empty TopSpace;

theorem Th18:
  for D being Subset of [:X,Y:] st D is open holds for X1 being
Subset of X, Y1 being Subset of Y holds (X1 = pr1(the carrier of X, the carrier
of Y).:D implies X1 is open) & (Y1 = pr2(the carrier of X, the carrier of Y).:D
  implies Y1 is open)
proof
  let D be Subset of [:X,Y:];
  set p = pr2(the carrier of X, the carrier of Y);
  set P = .:p;
  assume D is open;
  then consider H being Subset-Family of [:X,Y:] such that
A1: D = union H and
A2: for e st e in H ex X1 being Subset of X, Y1 being Subset of Y st e =
  [:X1,Y1:] & X1 is open & Y1 is open by Th5;
  reconsider K = H as Subset-Family of [:the carrier of X, the carrier of Y:]
  by Def2;
  let X1 be Subset of X, Y1 be Subset of Y;
  thus X1 = pr1(the carrier of X, the carrier of Y).:D implies X1 is open
  proof
    set p = pr1(the carrier of X, the carrier of Y);
    set P = .:p;
    reconsider PK = P.:K as Subset-Family of X;
    reconsider PK as Subset-Family of X;
A3: PK is open
    proof
      let X1 be Subset of X;
      reconsider x1 = X1 as Subset of X;
      assume X1 in PK;
      then consider
      c being Subset of[:the carrier of X, the carrier of Y:] such
      that
A4:   c in K and
A5:   x1 = P.c by FUNCT_2:65;
      dom P = bool[:the carrier of X, the carrier of Y:] by FUNCT_2:def 1;
      then
A6:   X1 = p.:c by A5,FUNCT_3:7;
A7:   c = {} or c <> {};
      ex X2 being Subset of X, Y2 being Subset of Y st c = [:X2,Y2:] & X2
      is open & Y2 is open by A2,A4;
      hence thesis by A6,A7,EQREL_1:49;
    end;
    assume X1 = p.:D;
    then X1 = union(P.:K) by A1,EQREL_1:53;
    hence thesis by A3,TOPS_2:19;
  end;
  reconsider PK = P.:K as Subset-Family of Y;
  reconsider PK as Subset-Family of Y;
A8: PK is open
  proof
    let Y1 be Subset of Y;
    reconsider y1 = Y1 as Subset of Y;
    assume Y1 in PK;
    then consider
    c being Subset of[:the carrier of X, the carrier of Y:] such that
A9: c in K and
A10: y1 = P.c by FUNCT_2:65;
    dom P = bool[:the carrier of X, the carrier of Y:] by FUNCT_2:def 1;
    then
A11: Y1 = p.:c by A10,FUNCT_3:7;
A12: c = {} or c <> {};
    ex X2 being Subset of X, Y2 being Subset of Y st c = [:X2,Y2:] & X2
    is open & Y2 is open by A2,A9;
    hence thesis by A11,A12,EQREL_1:49;
  end;
  assume Y1 = p.:D;
  then Y1 = union(P.:K) by A1,EQREL_1:53;
  hence thesis by A8,TOPS_2:19;
end;
