IsJoinPreserving f. Proof. intros x y. case (total (≤) x y); intros E. - change (f (join x y) = join (f x) (f y)). rewrite (join_r _ _ E),join_r;trivial. apply (order_preserving _). trivial. - change (f (join x y) = join (f x) (f y)). rewrite 2!join_l; trivial. apply (order_preserving _). trivial. Qed.
Require Import