reserve f, g, h for Function;
reserve x, y, z, u, X for set,
  A for non empty set,
  n for Element of NAT,
  f for Function of X, X;
reserve f for c=-monotone Function of bool X, bool X,
  S for Subset of X;
reserve X, Y for non empty set,
  f for Function of X, Y,
  g for Function of Y, X;
reserve L for Lattice,
  f for Function of the carrier of L, the carrier of L,
  x for Element of L,
  O, O1, O2, O3, O4 for Ordinal,
  T for Sequence;
reserve L for complete Lattice,
  f for monotone UnOp of L,
  a, b for Element of L;

theorem
  FixPoints f is complete
proof
  set F = FixPoints f;
  set cF = the carrier of F;
  set cL = the carrier of L;
  let X be set;
  set Y = X /\ cF;
  set s = "\/"(Y, L);
A1: Y c= cF by XBOOLE_1:17;
  Y is_less_than f.s
  proof
    let q be Element of cL;
    reconsider q9 = q as Element of L;
    assume
A2: q in Y;
    then q [= s by LATTICE3:38;
    then
A3: f.q [= f.s by QUANTAL1:def 12;
    q9 is_a_fixpoint_of f by A1,A2,Th38;
    hence q [= f.s by A3;
  end;
  then
A4: s [= f.s by LATTICE3:def 21;
  then consider O such that
  card O c= card cL and
A5: (f, O)+.s is_a_fixpoint_of f by Th30;
  reconsider p9 = (f, O)+.s as Element of L;
  reconsider p = p9 as Element of cF by A5,Th38;
  take p;
  thus X is_less_than p
  proof
    let q be Element of cF;
    q in cF & cF c= cL by Th37;
    then reconsider qL9 = q as Element of L;
    assume q in X;
    then q in Y by XBOOLE_0:def 4;
    then
A6: qL9 [= s by LATTICE3:38;
    s [= p9 by A4,Th22;
    then qL9 [= p9 by A6,LATTICES:7;
    hence q [= p by Th39;
  end;
  let r be Element of cF such that
A7: X is_less_than r;
  reconsider r99 = r as Element of F;
  cF = {x where x is Element of L: x is_a_fixpoint_of f} & r in the
  carrier of F by Th36;
  then consider r9 being Element of L such that
A8: r9 = r and
A9: r9 is_a_fixpoint_of f;
A10: Y c= X by XBOOLE_1:17;
  Y is_less_than r9
  proof
    let q be Element of cL;
    assume
A11: q in Y;
    then reconsider q99 = q as Element of F by A1;
    q99 [= r99 by A10,A7,A11;
    hence q [= r9 by A8,Th39;
  end;
  then s [= r9 by LATTICE3:def 21;
  then p9 [= r9 by A9,Th34;
  hence p [= r by A8,Th39;
end;
