Ltac refold_right_sepcon R :=
 match R with
 | @sepcon mpred _ _ ?R1 ?R' => let S := refold_right_sepcon R' in constr: (R1 :: S )
 | _ => constr:(R :: nil)
 end.Definition func_ptr' f v := func_ptr f v && emp.

Lemma lift1_unfold: forall {A1 B} (f: A1 -> B) a1 rho, lift1 f a1 rho = f (a1 rho).