Module ext_subst (weak : ext_weak_sig) <: ext_subst_sig.
Include weak.
induction G2; [ | inversion 1]; simpl; auto.
Qed.

Lemma subst_rho: forall L G a A x y b rho
(T : Typing G a A)
(Neq: x <> y)
(Fr: y `notin` fv_tm_tm_tm a)
(Fr2: y `notin` L)
(K : (forall x, x `notin` L -> RhoCheck rho x (open_tm_wrt_tm b (a_Var_f x)))),
RhoCheck rho y  (tm_subst_tm_tm a x (open_tm_wrt_tm b (a_Var_f y))).