Fact exp_nil i : exp i vec_nil = 1.Fact exp_zero n i : @exp n i vec_zero = 1.Fact exp_app n m i v w : @exp (n+m) i (vec_app v w) = exp i v * exp (n+i) w.Local Notation divides_mult_inv := prime_div_mult.

(* Specifications: *)
Lemma not_prime_1 : ~ prime 1.
Lemma not_ps_1 n : ~ ps n = 1.
Lemma not_qs_1 n : ~ qs n = 1.
Lemma divides_pow p n k : prime p -> divides p (n ^ k) -> divides p n.
Lemma ps_exp n m (v : vec nat m) i : ~ divides (ps n) (exp i v).