Proof with auto.
intros H0 H1 H2. unfold do_unfold'.
rewrite listd_app, listd_unfold_state; split. solve[apply unfolding1_sound;auto].
rewrite listd_app, listd_unfold_state; split. solve[apply unfolding2_sound;auto].
rewrite listd_app, listd_unfold_state; split. solve[apply unfolding3_sound;auto].
rewrite listd_app, listd_unfold_state; split. solve[apply unfolding4_sound;auto].
rewrite listd_app, listd_unfold_state; split. solve[apply unfolding6_sound;auto].
auto.
Qed.

Lemma perm_exists: forall {A} (l:list A) a, In a l ->
exists l', Permutation l (a::l').