Definition RndPerm(n : nat) :=
  shuffle _ (allNatsLt n).

Theorem list_pred_map_both': forall (A B C D : Set) (lsa : list A) (lsb : list B) (P : C -> D -> Prop) (f : A -> C)(g : B -> D), list_pred (fun (a : A) (b : B) => P (f a) (g b)) lsa lsb -> list_pred P (map f lsa) (map g lsb).