(* FIXME: temporary hack *)
Ltac ann_weak_speedup :=
  first [eapply An_AppCong | eapply An_PiSnd].

Lemma ann_typing_weakening_mutual: (forall G0 a A, AnnTyping G0 a A -> forall E F G, (G0 = F ++ G) -> AnnCtx (F ++ E ++ G) -> AnnTyping (F ++ E ++ G) a A) /\ (forall G0 phi, AnnPropWff G0 phi -> forall E F G, (G0 = F ++ G) -> AnnCtx (F ++ E ++ G) -> AnnPropWff (F ++ E ++ G) phi) /\ (forall G0 D g p1 p2, AnnIso G0 D g p1 p2 -> forall E F G, (G0 = F ++ G) -> AnnCtx (F ++ E ++ G) -> AnnIso (F ++ E ++ G) D g p1 p2) /\ (forall G0 D g A B, AnnDefEq G0 D g A B -> forall E F G, (G0 = F ++ G) -> AnnCtx (F ++ E ++ G) -> AnnDefEq (F ++ E ++ G) D g A B) /\ (forall G0, AnnCtx G0 -> forall E F G, (G0 = F ++ G) -> AnnCtx (F ++ E ++ G) -> AnnCtx (F ++ E ++ G)).