(******************************************

Definition of at_offset.

at_offset is the elementary definition. All useful lemmas about at_offset will be proved here.

******************************************)

Definition at_offset (P: val -> mpred) (z: Z): val -> mpred :=
 fun v => P (offset_val z v).

(* Specifications: *)
Lemma at_offset_eq: forall P z v, at_offset P z v = P (offset_val z v).
Lemma at_offset_eq2: forall pos pos' P, forall p, at_offset P (pos + pos') p = at_offset P pos' (offset_val pos p).
Lemma at_offset_eq3: forall P z b ofs, at_offset P z (Vptr b (Ptrofs.repr ofs)) = P (Vptr b (Ptrofs.repr (ofs + z))).