Section IntervalChoice.
Variable T : choiceType.
Definition itv_bound_porderMixin :=
LePOrderMixin lt_bound_def le_bound_refl le_bound_anti le_bound_trans.
Canonical itv_bound_porderType :=
POrderType (itv_bound_display disp) (itv_bound T) itv_bound_porderMixin.
Definition interval_porderMixin :=
LePOrderMixin (fun _ _ => erefl) subitv_refl subitv_anti subitv_trans.
Canonical interval_porderType :=
POrderType (interval_display disp) (interval T) interval_porderMixin.
Definition pred_of_itv i : pred T := [pred x | `[x, x] <= i].
Canonical Structure itvPredType := PredType pred_of_itv.

Lemma subset_itv_oo_cc x y : {subset `]x, y[ <= `[x, y]}.