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

Lemma ideal_refl x : ideal_leq x x.