Local Notation "e [ v / x ]" := (vec_change e x v).

(* Specifications: *)
Lemma prime_neq_0 p : prime p -> p <> 0.
Lemma power_factor_lt_neq p i j x y : p <> 0 -> i < j -> ~ divides p x -> p^i * x <> p^j * y.
Lemma power_factor_uniq p i j x y : p <> 0 -> ~ divides p x -> ~ divides p y -> p^i * x = p^j * y -> i = j /\ x = y.
Lemma prime_above m : { p | m < p /\ prime p }.
Lemma prime_divides p q : prime p -> prime q -> divides p q -> p = q.