(* lattice constructions *)
Section SubLattice.
Variables (T : lattice) (s : Pred T) (C : sup_closed s).
Local Notation tp := (subPoset s).
Definition sub_sup' (u : Pred tp) : T :=
sup [Pred x : T | exists y, y \In u /\ x = sval y].

(* Specifications: *)
Lemma sub_supX (u : Pred tp) : sub_sup' u \In s.
Arguments prod_mono [S1 S2 T1 T2 f1 f2].