reserve N for Cardinal;
reserve M for Aleph;
reserve X for non empty set;
reserve Y,Z,Z1,Z2,Y1,Y2,Y3,Y4 for Subset of X;
reserve S for Subset-Family of X;
reserve x for set;
reserve F,Uf for Filter of X;
reserve S for non empty Subset-Family of X;
reserve I for Ideal of X;
reserve S,S1 for Subset-Family of X;
reserve FS for non empty Subset of Filters(X);

theorem Th17:
  for F ex Uf st F c= Uf & Uf is being_ultrafilter
proof
  let F;
  set LargerF = {S: F c= S & S is Filter of X};
A1: F in LargerF;
  {S: F c= S & S is Filter of X} c= Filters(X)
  proof
    defpred P[set] means F c= $1 & $1 is Filter of X;
    let F2 be object;
     reconsider FF=F2 as set by TARSKI:1;
    assume F2 in {S: F c= S & S is Filter of X};
    then
A2: FF in {S: P[S]};
    P[FF] from ElemProp(A2);
    hence thesis;
  end;
  then reconsider LargerF as non empty Subset of Filters(X) by A1;
  defpred P[set] means F c= $1 & $1 is Filter of X;
  for Z be set st Z c= LargerF & Z is c=-linear ex Y be set st Y in
  LargerF & for X1 be set st X1 in Z holds X1 c= Y
  proof
    let X1 be set;
    assume that
A3: X1 c= LargerF and
A4: X1 is c=-linear;
    per cases;
    suppose
A5:   X1 = {};
      take F;
      thus thesis by A5;
    end;
    suppose
      X1 is non empty;
      then reconsider X2=X1 as non empty Subset of Filters(X) by A3,XBOOLE_1:1;
A6:   F c= union X2
      proof
        defpred P[set] means F c= $1 & $1 is Filter of X;
        consider F1 being object such that
A7:     F1 in X2 by XBOOLE_0:def 1;
        reconsider F1 as set by TARSKI:1;
A8:     F1 in {S: P[S]} by A3,A7;
A9:     P[F1] from ElemProp(A8);
        F1 c= union X2 by A7,ZFMISC_1:74;
        hence thesis by A9;
      end;
      union X2 is Filter of X by A4,Th16;
      then union X2 in {S: F c= S & S is Filter of X} by A6;
      then reconsider MF = union X2 as Element of LargerF;
      take MF;
      thus thesis by ZFMISC_1:74;
    end;
  end;
  then consider Uf1 be set such that
A10: Uf1 in LargerF and
A11: for Z be set st Z in LargerF & Z <> Uf1 holds not Uf1 c= Z by ORDERS_1:65;
  reconsider Uf1 as Element of LargerF by A10;
  reconsider Uf=Uf1 as Filter of X by Th15;
  take Uf;
A12: Uf in {S: P[S]};
A13: P[Uf] from ElemProp(A12);
  hence F c= Uf;
  thus Uf is being_ultrafilter
  proof
    let Z;
    per cases;
    suppose
      Z in Uf;
      hence thesis;
    end;
    suppose
A14:  not Z in Uf;
      X \ Z in Uf
      proof
        assume
A15:    not X \ Z in Uf;
A16:    for Y1 st Y1 in Uf holds Y1 meets Z
        proof
          let Y1;
          assume
A17:      Y1 in Uf;
          assume Y1 misses Z;
          then Y1 = Y1 \ Z by XBOOLE_1:83;
          then Y1 c= X \ Z by XBOOLE_1:33;
          hence contradiction by A15,A17,Def1;
        end;
        then
A18:    Extend_Filter(Uf,Z) is Filter of X by Th14;
A19:    Z in Extend_Filter(Uf,Z) by A16,Th14;
A20:    Uf c= Extend_Filter(Uf,Z) by A16,Th14;
        then F c= Extend_Filter(Uf,Z) by A13;
        then Extend_Filter(Uf,Z) in LargerF by A18;
        hence contradiction by A11,A14,A20,A19;
      end;
      hence thesis;
    end;
  end;
end;
