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

Proof. destruct a; auto; try contradiction. Qed. Lemma sem_cast_pointer2': forall (v : val) (t1 t2: type), match t1 with | Tpointer _ _ => is_true (negb (eqb_type t1 int_or_ptr_type)) | Tint I32 _ _ => if Archi.ptr64 then False else True | Tlong _ _ => if Archi.ptr64 then True else False | _ => False end -> match t2 with | Tpointer _ _ => is_true (negb (eqb_type t2 int_or_ptr_t