(* We require a lambda-abstraction, so as to eliminate the cases where we have a variable or an application, which we cannot deal with. *)
(* The following lemma looks like an inversion of [JTyAbs], but it is not truly one, because it is proved by applying weakening and [JTyApp], hence increasing the height of the derivation by one. *)
Goal (* phony_inversion_JTyAbs: *)
forall n E t T,
j n E t (TyForall T) ->
j (S n) (map (shift 0) E) t T.

Lemma canonicalization:
forall n E t T,
j n E (TAbs t) T ->
j 0 E (TAbs t) T.