apply nil_is_permutation.
eapply cons_is_permutation.
apply IHPermutation.
apply head_insertion.
eapply cons_is_permutation.
apply is_permutation_refl.
apply tail_insertion.
apply head_insertion.
eapply is_permutation_trans;eauto.
Qed.

(* Specifications: *)
Lemma insertion_append_decompose : forall (A:Set)(x:A)(l l':list A),(insertion _ x l l')->exists l1:list A,exists l2:list A,l=(app l1 l2)/\l'=(app l1 (cons x l2)).
induction 1.