Ltac ungather_entail :=
match goal with
  | |- EVAR (forall x : ?t, _) =>
       let x' := fresh x in evar (x' : t);
       let x'' := fresh x in apply EVAR_i; intro x'';
       replace x'' with x'; [ungather_entail; clear x'' | admit ]
  | |- _ => intros
 end.

Lemma offset_val_sizeof_hack2: forall cenv t i j p, isptr p -> i=j -> (offset_val (@sizeof cenv t * i) p = offset_val (@sizeof cenv t * j) p) = True.