t; auto.
eapply tc_eval'_id_i.
eassumption.Qed.

Definition abbreviate {A:Type} (x:A) := x.
Arguments abbreviate [A] [x].

Ltac clear_Delta :=
match goal with
| Delta := @abbreviate tycontext _ |- _ =>
   first [clear Delta | clearbody Delta]
| _ => idtac
end;
matchgoal with
 |  DS := @abbreviate (PTree.t funspec) _  |- _ =>
   first [clear DS | clearbody DS]
 | |- _ => idtac
 end.

Ltac

forall v, is_pointer_or_null (force_val (sem_cast_pointer v)) = is_pointer_or_null v. Proof. destruct v; reflexivity. Qed.