End LiftChain.
(****************************)
(* common cpo constructions *)
(****************************)
(* pairs *)
Section PairCPO.
Variables (A B : cpo).
Local Notation tp := [poset of A * B].
Definition pair_bot : tp := (bot, bot).
Definition pair_lim (s : chain tp) : tp :=
(lim (proj1_chain s), lim (proj2_chain s)).

(* Specifications: *)
Lemma pair_botP x : pair_leq pair_bot x.
Lemma chain_clos_idemp (s : Pred T) :
chain_closed s -> chain_closure s =p s.
Lemma chain_clos_mono (s1 s2 : Pred T) :
s1 <=p s2 -> chain_closure s1 <=p chain_closure s2.
(* intersection of admissible sets is admissible *)
Lemma chain_closI (s1 s2 : Pred T) :
chain_closed s1 -> chain_closed s2 -> chain_closed (PredI s1 s2).