Definition funPosetMixin := PosetMixin fun_botP fun_refl fun_asym fun_trans.Canonical funPoset := Eval hnf in Poset tp funPosetMixin.Definition dfun_bot : tp := fun x => bot.

(* Specifications: *)
Lemma dfun_botP x : dfun_leq dfun_bot x.
Lemma dfun_refl x : dfun_leq x x.
Lemma dfun_asym x y : dfun_leq x y -> dfun_leq y x -> x = y.
Lemma dfun_trans x y z : dfun_leq x y -> dfun_leq y z -> dfun_leq x z.