Ltac solve_ptr_derives :=
  repeat rewrite isptr_offset_val;
  apply derives_refl.

Lemma withspacer_field_at__Tunion: forall sh t gfs i id a p, nested_field_type t gfs = Tunion id a -> in_members i (co_members (get_co id)) -> withspacer sh (nested_field_offset t gfs + sizeof (field_type i (co_members (get_co id)))) (nested_field_offset t gfs + sizeof (nested_field_type t gfs)) (field_at_ sh t (gfs UDOT i)) p = memory_block sh (sizeof (nested_field_type t gfs)) (field_address t gfs p).