[(* first case *)
rewrite > (times_n_SO q).rewrite < H5.
rewrite > distr_times_minus.
+ elim H1. autobatch;
+ (*
rewrite > (sym_times q (a1*p)).
rewrite > (assoc_times a1).
- elim H1.
- pump 39.
- applyS (witness n ? ? (refl_eq ? ?)) (* timeout=50 *).
- (*
+ applyS (witness n ? ? (refl_eq ? ?)).
rewrite < (sym_times n).rewrite < assoc_times.
rewrite > (sym_times q).rewrite > assoc_times.
rewrite < (assoc_times a1).rewrite < (sym_times n).
|(* second case *)
rewrite > (times_n_SO q).rewrite < H5.
rewrite > distr_times_minus.
+ elim H1. autobatch;
+ (*
rewrite > (sym_times q (a1*p)).
rewrite > (assoc_times a1).
- elim H1.rewrite > H6.
- applyS (witness n ? ? (refl_eq ? ?)) (* timeout=50 *).
- (*
+ rewrite > H6.
+ applyS (witness n ? ? (refl_eq ? ?)).
rewrite < sym_times.rewrite > assoc_times.
rewrite < (assoc_times q).
rewrite < (sym_times n).
rewrite > H4 in H2.
elim (divides_times_to_divides ? ? ? H H2)
[apply False_ind.apply H1.assumption
- |elim H5.
+ |elim H5.
apply (witness ? ? n2).
rewrite > sym_times in ⊢ (? ? ? (? % ?)).
rewrite > assoc_times.