(* These tactics were originally in a different file, but moved here *)

Ltac make_fraction w p q Heq := elim (interp_non_zero w); intros p (q, Heq).Ltac expand a b c d p q Heq Heq1 Heq2 :=
  elim (construct_correct2' c a b);
   [ intros d; elim (interp_non_zero (Qpositive_c a b c)); intros p (q, Heq);
      rewrite Heq; unfold fst, snd in |- *; intros (Heq1, Heq2)
   | try (simpl in |- *; auto with arith; fail)
   | try (simpl in |- *; auto with arith; fail)
   | auto ].

(* Specifications: *)
Theorem Qpositive_le_add : forall w w' w'' : Qpositive, Qpositive_le w w' -> Qpositive_le (Qpositive_plus w w'') (Qpositive_plus w' w'').
Theorem Qpositive_le_mult : forall w w' w'' : Qpositive, Qpositive_le w w' -> Qpositive_le (Qpositive_mult w w'') (Qpositive_mult w' w'').
Theorem Qpositive_plus_le : forall w w' : Qpositive, Qpositive_le w (Qpositive_plus w w').