(** * No double elements modulo p. *)

Definition nodoubles (p : nat) (l : Zlist) : Prop :=
  forall x : Z,
  inlist Z x l -> forall y : Z, inlist Z y (zdrop x l) -> ~ Mod x y p.

Lemma nodoubles_ind : forall (p : nat) (h : Z) (t : Zlist), (forall x : Z, inlist Z x t -> ~ Mod h x p) -> nodoubles p t -> nodoubles p (Cons Z h t).