c_0_0
? [X1369: list_type] : ( ( typing @ ( shift_type @ e @ i @ t2 ) @ ( app @ ( var @ n ) @ a ) @ ( foldr_type_type @ fun @ X1369 @ t ) ) & ( typings @ ( shift_type @ e @ i @ t2 ) @ as @ X1369 ) & ~ thesis )
Proof
lemma subst_type_IT: "⋀t e T u i. IT t ⟹ e⟨i:U⟩ ⊢ t : T ⟹ IT u ⟹ e ⊢ u : U ⟹ IT (t[u/i])" (is "PROP ?P U" is "⋀t e T u i. _ ⟹ PROP ?Q t e T u i U")
case (Cons a as)
with nT have "e⟨i:T⟩ ⊢ Var n ° a °° as : T'" by simp
then obtain Ts
where headT: "e⟨i:T⟩ ⊢ Var n ° a : Ts ⇛ T'"
and argsT: "e⟨i:T⟩ ⊩ as : Ts"
by (rule list_app_typeE)