revert i j; induction v; intros i j Hi.
+ cbn; intros ? % divides_1_inv % not_qs_1; auto.
+ cbn; intros [ H % divides_pow | H  ] % divides_mult_inv; eauto.
* eapply primestream_divides in H; omega.
* eapply IHv in H; eauto.
Qed.

(* Specifications: *)
Lemma qs_shift n m j k (v : vec nat k) :
divides (qs n) (exp j v) <-> divides (qs (m + n)) (exp (m + j) v).
Lemma vec_prod_mult m v (u : pos m) i : @exp m i (vec_change v u (1 + vec_pos v u)) = qs (u + i) * exp i v.
Lemma inv_exp q p1 p2 x y :
q <> 0
-> ~ divides q p1
-> ~ divides q p2
-> q ^ x * p1 = q ^ y * p2
-> x = y.
Lemma exp_inj n i v1 v2 :
@exp n i v1 = exp i v2 -> v1 = v2.
Lemma exp_inv_inc n u v1 :
@exp n 0 (vec_change v1 u (S (vec_pos v1 u))) = qs u * exp 0 v1.