exists (nil (A:=A)).
exists l.
split;try reflexivity.
elim IHinsertion.
intro l1.
intro.
elim H0.
intro l2;intros.
elim H1;clear H1;intros.
exists (cons y l1).
exists l2.
subst l;subst l'.
split;try reflexivity.
Qed.

(* Specifications: *)
Lemma permutation_impl_Permutation : forall (A:Set)(l l':list A),(is_permutation _ l l')->(Permutation l l').
induction 1.