Definition Rle_mult_nonneg_nonneg:=Rmult_le_pos.
Definition Rlt_mult_pos_pos:=Rmult_lt_0_compat.
Definition Rmult_resp_nonzero:=RIneq.prod_neq_R0.
Definition Rinv_resp_nonzero:=Rinv_neq_0_compat.
Definition Ropp_resp_nonzero:=RIneq.Ropp_neq_0_compat.
Hint Resolve Rlt_Ropp_pos Rinv_pos R1_neq_R0 Rle_mult_nonneg_nonneg
Rlt_mult_pos_pos Rlt_mult_neg_neg Rlt_not_eq' Rlt_not_eq
Rmult_resp_nonzero Rinv_resp_nonzero Ropp_resp_nonzero.

(* Specifications: *)
Lemma Rmult_mult_nonneg: forall r, 0<=r*r.
Lemma Rmult_mult_Ropp_nonpos: forall r, -(r*r)<=0.
Lemma Rlt_mult_pos_neg: forall r1 r2 : R, r1 < 0 -> 0<r2 -> r1 * r2<0.
Lemma Rlt_mult_neg_pos: forall r1 r2 : R, 0<r1 -> r2<0 -> r1 * r2<0.
Lemma Rdiv_Rmult_pos_neg_Rle: forall x y z t, R0 < z -> t < R0 -> x / z <= y / t -> y * z <= x * t.
Lemma Rdiv_Rmult_pos_neg_Rle': forall x y z t, R0 < z -> t < R0 -> x / z <= y / t -> z*y <= t*x.
Lemma Rdiv_Rmult_neg_pos_Rle: forall x y z t, z<0 -> 0<t -> x / z <= y / t -> y * z <= x * t.
Lemma Rdiv_Rmult_neg_pos_Rle': forall x y z t, z<0 -> 0<t -> x / z <= y / t -> z*y <= t*x.
Lemma Rdiv_Rmult_neg_neg_Rle: forall x y z t, z<0 -> t<0 -> x / z <= y / t -> x * t<=y * z.
Lemma Rdiv_Rmult_neg_neg_Rle': forall x y z t, z<0 -> t<0 -> x / z <= y / t -> t*x<=z*y.
Lemma Rdiv_Rmult_pos_pos_Rle: forall x y z t, 0<z -> 0<t -> x / z <= y / t -> x * t<=y * z.
Lemma Rdiv_Rmult_pos_pos_Rle': forall x y z t, 0<z -> 0<t -> x / z <= y / t -> t*x<=z*y.
Lemma Rdiv_Ropp_numerator: forall x y, y <> R0 -> (- x / y = - (x / y))%R.
Lemma Rdiv_Ropp_denomintor: forall x y, y <> R0 -> (x / - y = - (x / y))%R.
intros x y Hy; field; trivial.