fact: Fixpoint permmod (p : nat) (l1 : Zlist) {struct l1} : Zlist -> Prop := fun l2 : Zlist => match l1 with | Nil => l2 = Nil Z | Cons x t => exists y : Z, inlist Z y l2 /\ Mod x y p /\ permmod p t (zdrop y l2) end.
imports: Arith ZArith lemmas natZ dec list exp divides prime modulo modprime