Hint Rewrite split_first_PROP using not_conj_notation : norm1.

(* Specifications: *)
Lemma perm_derives:
forall Delta P Q R P' Q' R',
Permutation P P' ->
Permutation Q Q' ->
Permutation R R' ->
ENTAIL Delta, PROPx P (LOCALx Q (SEPx R)) |-- PROPx P' (LOCALx Q' (SEPx R')).
Lemma semax_frame_perm:
forall (Qframe : list localdef)
(Rframe : list mpred)
(Espec : OracleKind) {cs: compspecs}
(Delta : tycontext)
(P : list Prop) (Q : list localdef) (c : statement)
(R : list mpred)
(Q1 : list localdef) (R1 : list mpred)
(P2 : list Prop) (Q2 : list localdef)
(R2 : list mpred),
closed_wrt_modvars c (LOCALx Qframe (SEPx Rframe)) ->
Permutation (Qframe ++ Q1) Q ->
Permutation (Rframe ++ R1)  R ->
semax Delta (PROPx P (LOCALx Q1 (SEPx R1))) c
(normal_ret_assert (PROPx P2 (LOCALx Q2 (SEPx R2)))) ->
semax Delta (PROPx P (LOCALx Q (SEPx R))) c
(normal_ret_assert
(PROPx P2 (LOCALx (Q2 ++ Qframe) (SEPx (R2 ++ Rframe))))).
Lemma semax_post_flipped' :
forall (R': environ->mpred) Espec {cs: compspecs} (Delta: tycontext) (R P: environ->mpred) c,
@semax cs Espec Delta P c (normal_ret_assert R') ->
ENTAIL Delta, R' |-- R ->
@semax cs Espec Delta P c (normal_ret_assert R).