eauto.
Qed.
Ltac an_use_binder f x :=
pick fresh x and apply f; eauto;
unfold open_tm_wrt_tm; simpl; simpl_env; eauto;
match goal with
[ |- AnnTyping ?ctx ?a ?A ] =>
assert (AnnCtx ctx); [econstructor; eauto|idtac]
end.

(* Specifications: *)
Lemma An_App_intro :
forall (G : context) (b : tm) (rho : relflag) (a B A C : tm),
AnnTyping G b (a_Pi rho A B) -> (open_tm_wrt_tm B a) = C ->
AnnTyping G a A -> AnnTyping G (a_App b rho a) C.
Lemma FixTy_Star :
AnnTyping nil FixTy a_Star.
Lemma FixDef_FixTy :
AnnTyping nil FixDef FixTy.
Lemma AnnSig_an_toplevel: AnnSig an_toplevel.
Ltac use_binder f x :=
pick fresh x and apply f;
unfold open_tm_wrt_tm; simpl; simpl_env; eauto;
match goal with
[ |- Typing ?ctx ?a ?A ] =>
assert (Ctx ctx); [econstructor; eauto|idtac]
end.