Definition Q_eq_dec : forall x y : Q, {x = y} + {x <> y}.

(* Specifications: *)
Theorem Qgt_antisym : forall x y : Q, Qgt x y -> ~ Qgt y x.
Theorem Qgt_trans : forall x y z : Q, Qgt x y -> Qgt y z -> Qgt x z.
Theorem Qpositive_le_plus_simpl : forall x y z : Qpositive, Qpositive_le (Qpositive_plus x z) (Qpositive_plus y z) -> Qpositive_le x y.
Theorem Qpositive_le_sub_simpl_r : forall x y z : Qpositive, Qpositive_le z x -> Qpositive_le z y -> z <> x -> z <> y -> Qpositive_le (Qpositive_sub x z) (Qpositive_sub y z) -> Qpositive_le x y.
Theorem Qpositive_le_sub_simpl_l : forall x y z : Qpositive, Qpositive_le x z -> Qpositive_le y z -> z <> x -> z <> y -> Qpositive_le (Qpositive_sub z x) (Qpositive_sub z y) -> Qpositive_le y x.
Theorem Qgt_plus : forall x y z : Q, Qgt x y -> Qgt (Qplus z x) (Qplus z y).
Theorem Qgt_mult : forall x y z : Q, Qgt z Zero -> Qgt x y -> Qgt (Qmult z x) (Qmult z y).
Theorem Qpositive_mult_simpl : forall w w' w'' : Qpositive, Qpositive_mult w w'' = Qpositive_mult w' w'' -> w = w'.
Theorem Q_distr_left_aux : forall (x y : Q) (z' : Qpositive), Qmult (Qplus x y) (Qpos z') = Qplus (Qmult x (Qpos z')) (Qmult y (Qpos z')).
Theorem Qmult_zero : forall x : Q, Qmult Zero x = Zero.
Theorem Qmult_neg : forall (x : Q) (y' : Qpositive), Qopp (Qmult x (Qneg y')) = Qmult x (Qpos y').
Theorem Qopp_plus : forall x y : Q, Qopp (Qplus x y) = Qplus (Qopp x) (Qopp y).
Theorem Q_distr_left : forall x y z : Q, Qmult (Qplus x y) z = Qplus (Qmult x z) (Qmult y z).