(* 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_botP sub_refl sub_asym sub_trans.Definition subPoset := Eval hnf in Poset tp subPosetMixin.Local Notation tp := (dfunPoset B).Definition pair_bot : tp := (bot, bot).

Lemma pair_asym x y : pair_leq x y -> pair_leq y x -> x = y.