proposition: Lemma Dcuts_mult_finite : Dcuts_def_finite Dcuts_mult_val.
proof: Proof. revert X_finite Y_finite. apply hinhfun2. intros x y. exists (pr1 x * pr1 y). unfold neg ; apply (hinhuniv (P := make_hProp _ isapropempty)) ; intros xy. generalize (isdecrel_ltNonnegativeRationals (pr1 (pr1 xy)) (pr1 x)) ; apply sumofmaps ; intros Hx'. - generalize (isdecrel_ltNonnegativeRationals (pr2 (pr1 xy)) (pr1 y)) ; apply sumofmaps ; intros Hy'. + apply (isirrefl_isStrongOrder ltNonnegativeRationals (pr1 x * pr1 y)). pattern (pr1 x * pr1 y) at 1 ; rewrite (pr1 (pr2 xy)). now apply multNonnegativeRationals_ltcompat. + apply (pr2 y). apply Y_bot with (1 := pr2 (pr2 (pr2 xy))). now apply notlt_geNonnegativeRationals ; apply Hy'. - apply (pr2 x). apply X_bot with (1 := pr1 (pr2 (pr2 xy))). now apply notlt_geNonnegativeRationals ; apply Hx'. Qed.
imports: UniMath.MoreFoundations.Orders UniMath.MoreFoundations.Tactics UniMath.MoreFoundations.Notations UniMath.RealNumbers.Sets UniMath.Algebra.ConstructiveStructures UniMath.OrderTheory.Lattice.Lattice UniMath.RealNumbers.Prelim UniMath.RealNumbers.NonnegativeRationals