Fixpoint my_freezelist_nth (l: list nat) (al: list mpred): (list mpred) * (list mpred) :=
 match l with
 | nil => (nil,al)
 | (n::l') => let (xs, ys) := my_freezelist_nth l' al
              in (my_nth n ys emp::xs, my_delete_nth n ys)
 end.

(* Specifications: *)
Lemma my_freezelist_nth_freezelist_nth: forall l al, my_freezelist_nth l al = freezelist_nth l al.
Lemma freeze_SEP'': forall l Espec {cs: compspecs} Delta P Q R c Post xs ys, (xs, ys) = my_freezelist_nth l R -> @semax cs Espec Delta (PROPx P (LOCALx Q (SEPx (FRZL xs:: ys)))) c Post -> @semax cs Espec Delta (PROPx P (LOCALx Q (SEPx R))) c Post.