proposition: Lemma data_at_minus1_address: forall sh v p, data_at sh (if Archi.ptr64 then tulong else tuint) v (offset_val (- WORD_SIZE) p) |-- !! (force_val (sem_add_ptr_int (if Archi.ptr64 then tulong else tuint) Signed p (eval_unop Oneg tint (vint 1))) = field_address (if Archi.ptr64 then tulong else tuint) [] (offset_val (- WORD_SIZE) p)).
proof: Proof. intros. unfold eval_unop. simpl. entailer!. unfold field_address. rewrite if_true by assumption. rewrite offset_offset_val. simpl. reflexivity. Qed.
imports: CertiGraph.CertiGC(env_graph_gc gc_spec) CertiGraph.msl_ext.ramification_lemmas VST.concurrency.conclib