induction l...
simpl.
transitivity ((a :: a0 :: l) :: map (cons a0) (merges l [a]))...
rewrite (merges_real_eq (a0::l) [a]).
rewrite (merges_real_eq (a0::l) []).
simpl.
transitivity ([a :: a0 :: l] ++ map (cons a0) (merges l [a]))...
apply Permutation_app_swap.
Qed.

(* Specifications: *)
Lemma insert_everywhere_merges_commute a x y: Permutation
(concat (map (insert_everywhere a) (merges y x)))
(concat (map (merges y) (insert_everywhere a x))).