intros a b c H; generalize c; clear c; elim H.
rewrite <- minus_n_n; simpl in |- *; auto with arith.
intros b' Hle Hrec c H1; inversion H1; clear H1.
intros H2; rewrite (le_minus_O _ _ H2); auto with arith.
repeat rewrite <- minus_Sn_m; auto with arith.
Qed.

(* Specifications: *)
Theorem Qpositive_le_sub_l :
forall w w' w'' : Qpositive,
w <> w'' ->
w' <> w'' ->
Qpositive_le w w'' ->
Qpositive_le w' w'' ->
Qpositive_le w w' ->
Qpositive_le (Qpositive_sub w'' w') (Qpositive_sub w'' w).