Proof with auto.
induction l...
simpl @concat.
rewrite IHl.
apply Permutation_sym.
rewrite Permutation_app_swap.
unfold compose.
simpl.
rewrite app_ass.
generalize (concat (map (fun x0 : list T => tail (insert_everywhere x x0)) l)). intro.
rewrite (Permutation_app_swap l0).
rewrite <- app_ass.
rewrite <- app_ass.
apply Permutation_app...
destruct a...
simpl.
rewrite Permutation_app_swap.
simpl.
apply perm_skip.
apply Permutation_app_swap.
Qed.

(* Specifications: *)
Lemma map_length_filter_permuted_splits T (l l': list T): Permutation l l' ->
forall p,
Permutation
(map (fun x => length (filter (p (fst x)) (snd x))) (splits l))
(map (fun x => length (filter (p (fst x)) (snd x))) (splits l')).