(* no point in declaring this canonical, since it's keyed on forall *)
(* and forall is not a symbol *)
Definition dfunPosetMixin :=
  PosetMixin dfun_botP dfun_refl dfun_asym dfun_trans.Definition dfunPoset := Eval hnf in Poset tp dfunPosetMixin.Definition ideal_bot :=  Ideal (botP P).

Lemma ideal_botP x : ideal_leq ideal_bot x.