(* no need to put canonical here, because the system won't be *)
(* able to get the proof C from the {x : T | x \In s} syntax *)
Definition subPosetMixin := PosetMixin sub_refl sub_asym sub_trans.Definition subPoset := Eval hnf in Poset tp subPosetMixin.Local Notation tp := (dfunPoset B).

Lemma pair_trans x y z : pair_leq x y -> pair_leq y z -> pair_leq x z.