intros w w' w'' H; rewrite <- (Qpositive_mult_One w);
rewrite <- (Qpositive_mult_One w'); rewrite <- (Qpositive_mult_inv w'').
repeat rewrite Qpositive_mult_assoc;
repeat rewrite (Qpositive_mult_sym (Qpositive_inv w''));
repeat rewrite <- Qpositive_mult_assoc.
repeat rewrite (Qpositive_mult_sym w'').
rewrite H; auto.
Qed.

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')).