reserve T for non empty TopSpace,
  X,Z for Subset of T;
reserve x,y for Element of OpenClosedSet(T);
reserve x,y,X for set;
reserve BL for non trivial B_Lattice,
  a,b,c,p,q for Element of BL,
  UF,F,F0,F1,F2 for Filter of BL;

theorem Th33:
  StoneR BL = OpenClosedSet(StoneSpace BL)
proof
A1: StoneR BL c= OpenClosedSet(StoneSpace BL) by Lm2;
  OpenClosedSet(StoneSpace BL) c= StoneR BL
  proof
    let x be object;
    assume
A2: x in OpenClosedSet(StoneSpace BL);
    then reconsider X=x as Subset of StoneSpace BL;
A3: the topology of StoneSpace BL =
    {union A where A is Subset-Family of ultraset BL : A c= StoneR BL }
    by Def8;
A4: X is open closed by A2,Th1,Th2;
    then
A5: X` is open closed;
    X in the topology of StoneSpace BL by A4,PRE_TOPC:def 2;
    then consider A1 being Subset-Family of ultraset BL such that
A6: X = union A1 and
A7: A1 c= StoneR BL by A3;
    X` in the topology of StoneSpace BL by A5,PRE_TOPC:def 2;
    then consider A2 being Subset-Family of ultraset BL such that
A8: X` = union A2 and
A9: A2 c= StoneR BL by A3;
A10: X is Subset of ultraset BL by Def8;
    set AA = A1 \/ A2;
A11: ultraset BL = [#] StoneSpace BL by Def8
      .= X \/ X` by PRE_TOPC:2
      .= union AA by A6,A8,ZFMISC_1:78;
A12: AA c= StoneR BL by A7,A9,XBOOLE_1:8;
    then consider Y being Element of Fin AA such that
A13: ultraset BL = union Y by A11,Th32;
A14: Y c= AA by FINSUB_1:def 5;
    then
A15: Y c= StoneR BL by A12;
    set D = A1 /\ Y;
A16: Y = AA /\ Y by A14,XBOOLE_1:28
      .= D \/ A2 /\ Y by XBOOLE_1:23;
    now
      let y be set;
      assume y in A2 /\ Y;
      then y in A2 by XBOOLE_0:def 4;
      then
A17:  y c= X` by A8,ZFMISC_1:74;
      ( X`) misses X by XBOOLE_1:79;
      then ( X`) /\ X = {};
      then y /\ X = {} by A17,XBOOLE_1:3,26;
      hence y misses X;
    end;
    then
A18: X c= union D by A10,A13,A16,SETFAM_1:42;
    per cases;
    suppose D = {};
      then
A19:  X = {} by A18,ZFMISC_1:2;
      {}=UFilter BL.Bottom BL by Th30;
      hence thesis by A19,FUNCT_2:4;
    end;
    suppose
A20:  D <> {};
A21:  D c= Y by XBOOLE_1:17;
      reconsider D as non empty Subset-Family of ultraset BL by A20;
      reconsider D as non empty Subset-Family of ultraset BL;
A22:  union D c= union A1 /\ union Y by ZFMISC_1:79;
      union A1 /\ union Y c= union A1 by XBOOLE_1:17;
      then union D c= X by A6,A22;
      then
A23:  X = union D by A18;
A24:  D c= rng UFilter BL by A15,A21;
A25:  rng UFilter BL = dom id StoneR BL;
A26:  dom UFilter BL = dom UFilter BL;
      UFilter BL = id StoneR BL*UFilter BL by RELAT_1:54;
      then
UFilter BL, id StoneR BL are_fiberwise_equipotent by A25,A26,CLASSES1:77;
      then card(UFilter BL"D) = card((id StoneR BL)"D) by CLASSES1:78
        .= card D by A24,FUNCT_2:94;
      then UFilter BL"D is finite;
      then reconsider B = UFilter BL"D as
      Element of Fin the carrier of BL by FINSUB_1:def 5;
A27:  D = UFilter BL.:B by A15,A21,FUNCT_1:77,XBOOLE_1:1;
      then
A28:  B is non empty;
      deffunc U(Subset of ultraset BL,Subset of ultraset BL) = $1 \/ $2;
      consider G being BinOp of bool ultraset BL such that
A29:  for x,y being Subset of ultraset BL holds
      G.(x,y)= U(x,y) from BINOP_1:sch 4;
A30:  G is commutative
      proof
        let x,y be Subset of ultraset BL;
        G. (x,y) =y \/ x by A29
          .= G. (y,x) by A29;
        hence thesis;
      end;
A31:  G is associative
      proof
        let x,y,z be Subset of ultraset BL;
        G. (x,G. (y,z)) = G.(x, y \/ z) by A29
          .= x \/ (y \/ z) by A29
          .= (x \/ y) \/ z by XBOOLE_1:4
          .= G.(x \/ y, z) by A29
          .= G. (G.(x,y),z) by A29;
        hence thesis;
      end;
A32:  G is idempotent
      proof
        let x be Subset of ultraset BL;
        G. (x,x) = x \/ x by A29
          .= x;
        hence thesis;
      end;
A33:  for x,y being Element of BL holds
      UFilter BL.((the L_join of BL).(x,y)) = G.(UFilter BL.x,UFilter BL.y)
      proof
        let x,y be Element of BL;
        thus
        UFilter BL.((the L_join of BL).(x,y)) = UFilter BL.(x "\/" y)
          .=UFilter BL.x \/ UFilter BL.y by Th21
          .=G.(UFilter BL.x,UFilter BL.y) by A29;
      end;
      reconsider DD = D as Element of Fin bool ultraset BL by FINSUB_1:def 5;
      id BL = id the carrier of BL;
      then
A34:  UFilter BL.FinJoin B
      = UFilter BL.(FinJoin(B,id the carrier of BL)) by LATTICE4:def 8
        .= UFilter BL.((the L_join of BL)$$(B,id the carrier of BL))
      by LATTICE2:def 3
        .= G$$(B,(UFilter BL)*(id the carrier of BL))
      by A28,A30,A31,A32,A33,SETWISEO:30
        .= G$$(B,UFilter BL) by FUNCT_2:17
        .= G$$(B,(id bool ultraset BL)*UFilter BL) by FUNCT_2:17
        .= G$$(DD,id bool ultraset BL) by A27,A28,A30,A31,A32,SETWISEO:29;
      defpred X[Element of Fin bool ultraset BL] means
      for D being non empty Subset-Family of ultraset BL st
      D = $1 holds G$$($1,id bool ultraset BL) = union D;
A35:  X[{}.bool ultraset BL];
A36:  for DD being (Element of Fin bool ultraset BL),
      b being Subset of ultraset BL st X[DD] holds X[DD \/ {.b.}]
      proof
        let DD be (Element of Fin bool ultraset BL),
        b be Subset of ultraset BL;
        assume
A37:    for D being non empty Subset-Family of ultraset BL st D = DD
        holds G$$(DD,id bool ultraset BL) = union D;
        let D be non empty Subset-Family of ultraset BL such that
A38:    D = DD \/ {b};
        now per cases;
          suppose
A39:        DD is empty;
            hence G$$(DD \/ {.b.},id bool ultraset BL)=
            (id bool ultraset BL).b by A30,A31,SETWISEO:17
              .= b
              .= union D by A38,A39,ZFMISC_1:25;
          end;
          suppose
A40:        DD is non empty;
            DD c= D by A38,XBOOLE_1:7;
            then reconsider D1=DD as non empty Subset-Family of ultraset BL
            by A40,XBOOLE_1:1;
            reconsider D1 as non empty Subset-Family of ultraset BL;
            thus G$$(DD \/ {.b.},id bool ultraset BL) =
            G.(G$$(DD,id bool ultraset BL),(id bool ultraset BL).b)
            by A30,A31,A32,A40,SETWISEO:20
              .= G.(G$$(DD,id bool ultraset BL), b)
              .= G$$(DD,id bool ultraset BL) \/ b by A29
              .= union D1 \/ b by A37
              .= union D1 \/ union {b} by ZFMISC_1:25
              .= union D by A38,ZFMISC_1:78;
          end;
        end;
        hence thesis;
      end;
      for DD being Element of Fin bool ultraset BL holds X[DD]
      from SETWISEO:sch 4(A35,A36);
      then UFilter BL.FinJoin B = x by A23,A34;
      hence thesis by FUNCT_2:4;
    end;
  end;
  hence thesis by A1;
end;
