Require Export Coq.Lists.List.
Require Export Coq.ZArith.ZArith.
Require Export compcert.lib.Coqlib.
Require Export compcert.lib.Integers.
Require Export compcert.lib.Floats.
Require Export compcert.common.Values.
Require Export VST.msl.eq_dec.
Require Export VST.msl.Coqlib2.
Require Export VST.floyd.coqlib3.
Require Export VST.floyd.sublist.
Hint Rewrite <- offset_val_force_ptr : norm.
Hint Rewrite offset_offset_val: norm.
Hint Rewrite add_repr add64_repr ptrofs_add_repr : norm.
Hint Rewrite mul_repr mul64_repr ptrofs_mul_repr : norm.
Hint Rewrite sub_repr sub64_repr ptrofs_sub_repr : norm.
Hint Rewrite and_repr and64_repr : norm.
Hint Rewrite or_repr or64_repr : norm.
Hint Rewrite neg_repr neg64_repr : norm.
Hint Rewrite int_add_assoc1 : norm.
Hint Rewrite ptrofs_add_assoc1 : norm.
(* Hint Rewrite ptr_eq_True' using solve[auto] : norm. *)
Hint Rewrite ptr_eq_True using solve[auto] : norm.
Hint Rewrite isptr_offset_val_zero using solve [auto] : norm.

Lemma isptr_offset_val:
forall i p, isptr (offset_val i p) = isptr p.