Section MeetJoinLeMixin.
Variable (disp : unit) (T : porderType disp).
Record of_ := Build {
meet : T -> T -> T;
join : T -> T -> T;
meetP : forall x y z, (x <= meet y z) = (x <= y) && (x <= z);
joinP : forall x y z, (join x y <= z) = (x <= z) && (y <= z);
}.
Variable (m : of_).
Fact meet_lel x y : meet m x y <= meet m y x.
Fact meetC : commutative (meet m).
Fact joinC : commutative (join m).
Fact joinA : associative (join m).
Fact joinKI y x : meet m x (join m x y) = x.
Fact meetKU y x : join m x (meet m x y) = x.
Fact leEmeet x y : (x <= y) = (meet m x y == x).
Fact le_trans : transitive (le m).
Fact le_total : total (le m).

Lemma decn_inP : {in D, forall i, i.+1 \in D -> f i > f i.+1} ->
{in D &, {mono f : i j /~ i <= j}}.