Section PACO_METATHEORY.
Context {D : Type} {PROSET : isProset D}.
#[local] Hint Resolve le_join_lattice_introl le_join_lattice_intror join_lattice_le_intro bot_lattice_le_intro : core.
Proof with eauto with *.
assert (claim1 : proj1_sig f (proj1_sig (nu f)) =< proj1_sig f (join_lattice x (proj1_sig (nu f)))).
{ eapply (proj2_sig f). eapply join_lattice_spec; done!. }
pose proof (proj2_sig (nu f)) as [claim2 claim3]. split.
- intros x_le. rewrite x_le at 1. transitivity (proj1_sig f (proj1_sig (nu f)))...
- intros x_le. unnw. exploit (join_lattice_le_intro x (proj1_sig (nu f)) _ x_le).
+ do 2 red in claim2. rewrite claim2 at 1. eapply (proj2_sig f). eapply le_join_lattice_intror...
+ intros H. rewrite x_le. eapply postfixedpoint_le_gfpOf. eapply (proj2_sig f)...
Qed.
Definition G_aux0 {UPPER_LATTICE : isUpperSemilattice D} (f : `[D -> D]) (x : D) : D -> D :=
fun y : D => proj1_sig f (join_lattice x y).

Lemma G_aux0_isMonotionicMap {UPPER_LATTICE : isUpperSemilattice D} (f : `[D -> D]) (x : D)
: isMonotonic1 (G_aux0 f x).