close_prod_rounded' `{!Rounded A} `{!Rounded B} : Rounded (A /\ B). Proof. intros e u v. split. - intros [E0 E0'];apply rounded in E0;apply rounded in E0'. revert E0;apply (Trunc_ind _);intros [d1 [d1' [E1 E2]]]. revert E0';apply (Trunc_ind _);intros [d2 [d2' [E3 E4]]]. apply tr;exists (join d1 d2), (meet d1' d2');split. + rewrite E1. apply Qpos_sum_eq_join_meet. rewrite <-E1;trivial. + split. * apply rounded_le with d1;trivial. apply join_ub_l. * apply rounded_le with d2;trivial. apply join_ub_r. - apply (Trunc_ind _);intros [d [d' [E1 E2]]]. rewrite E1;split;apply rounded_plus,E2. Qed.
Require Import Import NatPair.Instances. Import Quoting.Instances.