(* Permutation is decidable *) 
Definition permutation_dec :
  (forall a b : A, {a = b} + {a <> b}) ->
  forall l1 l2 : list A, {permutation l1 l2} + {~ permutation l1 l2}.

Theorem permutation_map_ex : forall (A B : Type) (f : A -> B) l1 l2, permutation (map f l1) l2 -> exists l3 : _, permutation l3 l1 /\ l2 = map f l3.