(** * 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.

(* Specifications: *)
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).