Section SCOTT_FIX.
Context {D : Type}.
Fixpoint iterS (n : nat) (f : D -> D) (x : D) {struct n} : D :=
match n with
| O => x
| S n' => f (iterS n' f x)
end.
Variant IterS (f : D -> D) (x : D) : ensemble D :=
| In_IterS (n : nat) : iterS n f x \in IterS f x.
#[local] Hint Constructors IterS : core.
Context {PROSET : isProset D} {CPO : isCpo D}.

Lemma iterS_monotonic (f : D -> D)
(f_isMonotonic : isMonotonic1 f)
: forall n1 : nat, forall n2 : nat, n1 <= n2 -> iterS n1 f bottom_cpo =< iterS n2 f bottom_cpo.