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;
reserve f for monotone UnOp of BooleLatt A;

theorem
  ex g being c=-monotone Function of bool A, bool A st gfp (A, g) = gfp f
proof
  reconsider gf = gfp f as Subset of A by LATTICE3:def 1;
  the carrier of BooleLatt A = bool A by LATTICE3:def 1;
  then reconsider g = f as c=-monotone Function of bool A, bool A by Th46;
  reconsider gg = gfp(A, g) as Element of BooleLatt A by LATTICE3:def 1;
  take g;
  gg is_a_fixpoint_of f by Th5;
  then gg [= gfp f by Th43;
  then
A1: gg c= gf by LATTICE3:2;
  gfp f is_a_fixpoint_of f by Th42;
  then gf c= gfp (A, g) by Th8;
  hence thesis by A1;
end;
