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_leq (p1 p2 : tp) := forall x, p1 x <== p2 x.

Lemma ideal_trans x y z : ideal_leq x y -> ideal_leq y z -> ideal_leq x z.