Section BoolOrder.
Implicit Types (x y : bool).
Fact bool_display : unit. Proof. exact: tt. Qed.
Fact andbE x y : x && y = if (x < y)%N then x else y.
Fact trans : transitive le.
Definition porderMixin := LePOrderMixin (rrefl _) refl anti trans.
Canonical porderType := POrderType disp3 (T * T') porderMixin.
Fact trans : transitive le.
Fact lt_def x y : lt x y = (y != x) && le x y.
Definition porderMixin := LePOrderMixin lt_def refl anti trans.
Canonical porderType := POrderType disp2 {t : T & T' t} porderMixin.

Lemma leEsig x y : x <= y =
(tag x <= tag y) && ((tag x >= tag y) ==> (tagged x <= tagged_as x y)).