(* TODO: merge size_compatible and align_compatible *)
Definition align_compatible {C: compspecs} t p :=
  match p with
  | Vptr b i_ofs => align_compatible_rec cenv_cs t (Ptrofs.unsigned i_ofs)
  | _ => True
  end.Definition size_compatible {C: compspecs} t p :=
  match p with
  | Vptr b i_ofs => Ptrofs.unsigned i_ofs + sizeof t < Ptrofs.modulus
  | _ => True
  end.

Lemma mapsto_pointer_void: forall sh t a, eqb_type (Tpointer t a) int_or_ptr_type = false -> eqb_type (Tpointer Tvoid a) int_or_ptr_type = false -> mapsto sh (Tpointer t a) = mapsto sh (Tpointer Tvoid a).