(** * Setoid compatibility results *)

#[global]
Instance Qplus_comp : Proper (Qeq==>Qeq==>Qeq) Qplus.#[global]
Instance Qopp_comp : Proper (Qeq==>Qeq) Qopp.#[global]
Instance Qminus_comp : Proper (Qeq==>Qeq==>Qeq) Qminus.#[global]
Instance Qmult_comp : Proper (Qeq==>Qeq==>Qeq) Qmult.#[global]
Instance Qinv_comp : Proper (Qeq==>Qeq) Qinv.#[global]
Instance Qdiv_comp : Proper (Qeq==>Qeq==>Qeq) Qdiv.#[global]
Instance Qcompare_comp : Proper (Qeq==>Qeq==>eq) Qcompare.#[global]
Instance Qle_comp : Proper (Qeq==>Qeq==>iff) Qle.#[global]
Instance Qlt_compat : Proper (Qeq==>Qeq==>iff) Qlt.#[global]
Instance Qeqb_comp : Proper (Qeq==>Qeq==>eq) Qeq_bool.#[global]
Instance Qleb_comp : Proper (Qeq==>Qeq==>eq) Qle_bool.

Lemma Qmult_le_compat_nonneg: forall x y z t : Q, 0 <= x <= y -> 0 <= z <= t -> x * z <= y * t.