rattac.
unfold ratSubtract in *.
rattac.
unfold posnatMult in *.
inversion H4; clear H4; subst.
inversion H3; clear H3; subst.
arithNormalize.
assert (n * x3 * x1 * x3 <= n0 * x3 * x2 * x3)%nat.
apply mult_le_compat; trivial.
rewrite <- (mult_comm x1).
rewrite <- (mult_comm x2).
repeat rewrite mult_assoc.
apply mult_le_compat; trivial.
rewrite mult_comm.
rewrite l.
rewrite mult_comm.
trivial.
assert (n3 * x2 * x1 * x3 = n3 * x1 * x2 * x3)%nat.
do 3 arithSimplify.
omega.
Qed.

(* Specifications: *)
Lemma ratSubtract_leRat : forall r1 r2 r3 r4,
r1 <= r2 ->
r3 <= r4 ->
ratSubtract r1 r4 <= ratSubtract r2 r3.