Canonical pairPoset := Eval hnf in Poset tp pairPosetMixin.
End PairPoset.
(* functions into a poset form a poset *)
Section FunPoset.
Variable (A : Type) (B : poset).
Local Notation tp := (A -> B).
Definition fun_bot : tp := fun x => bot.
Definition fun_leq (p1 p2 : tp) := forall x, p1 x <== p2 x.

Lemma tarski_gfp_greatest f : forall x : T, f x = x -> x <== tarski_gfp f.