(** * 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_frac_l : forall (a:Z) (b c:positive), (a # (b * c)) == (1#b) * (a#c).