Section NU.
Context {D : Type} {PROSET : isProset D} {COLA : isCola D (PROSET := PROSET)}.
Definition nu (f : `[D -> D]) : { gfp_f : D | is_gfpOf gfp_f (proj1_sig f) } :=
let nu_f_proj1_sig : D := proj1_sig (supremum_cola (postfixedpointsOf (proj1_sig f))) in
let IS_SUPREMUM : is_supremum_of nu_f_proj1_sig (postfixedpointsOf (proj1_sig f)) := proj2_sig (supremum_cola (postfixedpointsOf (proj1_sig f))) in
@exist D (fun gfp_f : D => is_gfpOf gfp_f (proj1_sig f)) nu_f_proj1_sig (postfixedpoint_is_gfpOf (proj1_sig f) nu_f_proj1_sig (proj2_sig f) IS_SUPREMUM).

Lemma postfixedpoint_le_gfpOf (f : `[D -> D]) (x : D)
(POSTFIXEDPOINT : x =< proj1_sig f x)
: x =< proj1_sig (nu f).