From Undecidability.L Require Import LTactics.
Fixpoint many_lam k s := match k with 0 => s | S k => lam (many_lam k s) end.
Fixpoint many_app k s (v : Vector.t term k) :=
match v with
| Vector.nil => s
| Vector.cons x _ v => many_app (L.app s x) v
end.

Lemma subst_many_app k (v : Vector.t term k) n u s :
subst (many_app s v) n u = many_app (subst s n u) (Vector.map (fun s => subst s n u) v).