Section Substitution_Properties.
Variable L : Language.
Let Formula := Formula L.
Let Formulas := Formulas L.
Let System := System L.
Let Term := Term L.
Let Terms := Terms L.
Let var := var L.
Let apply := apply L.
Let equal := equal L.
Let atomic := atomic L.
Let impH := impH L.
Let notH := notH L.
Let forallH := forallH L.
Let orH := orH L.
Let andH := andH L.
Let existH := existH L.
Let iffH := iffH L.
Let SysPrf := SysPrf L.

Lemma subTermsTrans :
forall (n : nat) (ts : Terms n) (v1 v2 : nat) (s : Term),
~ In v2 (list_remove _ eq_nat_dec v1 (freeVarTerms L n ts)) ->
substituteTerms L n (substituteTerms L n ts v1 (var v2)) v2 s =
substituteTerms L n ts v1 s.