(** * All elements from l1 occur in l2 modulo p. *)
Definition allex (p : nat) (l0 l1 : Zlist) : Prop :=
forall x : Z, inlist Z x l0 -> exists y : Z, inlist Z y l1 /\ Mod x y p.

Lemma allex_nodoubles_drop :
forall (p : nat) (l0 l1 : Zlist) (x0 x1 : Z),
Prime p ->
Mod x0 x1 p ->
inlist Z x0 l0 ->
inlist Z x1 l1 ->
nodoubles p l0 -> allex p l0 l1 -> allex p (zdrop x0 l0) (zdrop x1 l1).