(** * 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 Qreduce_den_inject_Z_r : forall (a : Z) (b : positive), a * Z.pos b # b == inject_Z a.