(** Below is an attempt to restate Pocklington's theorem using only numbers from Z. This will make concrete computations faster. *)
(** ZallLinCombMod is equivalent to AllLinCombMod but uses Z. *)
Definition ZallLinCombMod (a n m N : Z) (qlist : Zlist) :=
alllist Z
(fun q : Z => ZLinCombMod 1 (ZExp a (m * zmultDrop q qlist) - 1) n N)
qlist.

Lemma ZallLinCombMod_ok :
forall (a n m N : Z) (qlist : Zlist),
ZallLinCombMod a n m N qlist ->
forall qi : Z,
inlist Z qi qlist -> ZLinCombMod 1 (ZExp a (m * zmultDrop qi qlist) - 1) n N.