Section SCOTT_APP.
Context {D : Type} {D' : Type} {PROSET : isProset D} {PROSET' : isProset D'} {CPO : isCpo D} {CPO' : isCpo D'}.
Let scottApp1 : (`[D -> D'] * D) -> D' :=
fun '(f, x) => proj1_sig f x.
Proof with eauto with *.
intros [f1 x1] [f2 x2] [f1_le_f2 x1_le_x2]; simpl in *. transitivity (proj1_sig f1 x2).
- eapply ScottContinuousMap_isMonotonic... exact (proj2_sig f1).
- clear x1 x1_le_x2. revert x2. change (f1 =< f2)...
Qed.

Lemma scottApp1_preserves_eqProp (f1 : `[D -> D']) (f2 : `[D -> D']) (x1 : D) (x2 : D)
(f1_eq_f2 : f1 == f2)
(x1_eq_x2 : x1 == x2)
: scottApp1 (f1, x1) == scottApp1 (f2, x2).