intuition.
unfold ratMult in *.
destruct r1.
destruct r2.
destruct r3.
unfold eqRat, beqRat in *.
simpl in *.
unfold posnatMult, posnatToNat, natToPosnat in *.
destruct p1.
destruct p0.
destruct p.
destruct (eq_nat_dec (n * n0 * (x * x0)) (n1 * n0 * (x1 * x0))); try congruence.
destruct (eq_nat_dec (n * x) (n1 * x1)).
trivial.
exfalso.
eapply n2.
clear n2.
arithNormalize.
rewrite <- (mult_assoc n) in e.
rewrite (mult_comm n0) in e.
arithNormalize.
rewrite <- mult_assoc in e.
rewrite <- (mult_assoc n1) in e.
rewrite <- (mult_comm x1) in e.
rewrite (mult_assoc n1) in e.
rewrite <- (mult_assoc (n1 * x1)) in e.
eapply mult_same_r.
2:{
eapply e.
}
rewrite mult_0_r in H0.
rewrite plus_0_l in H0.
destruct (eq_nat_dec n0 0); intuition.
assert (~n0 * x0 = O)%nat.
intuition.
eapply mult_is_O in H1.
intuition.
remember (n0 * x0)%nat as a.
omega.
Qed.

(* Specifications: *)
Lemma rat_le_1 : forall n (d : posnat),
(n <= d)%nat -> (RatIntro n d) <= 1.