napply (Hind2 ? (P::D));nnormalize;//;
     ##]
   ##|#G; #P; #Q; #R; #S; #tjP; #tjS; #Hind1; #Hind2;
-     #G1; #D; #N; #Heq; #tjN; nnormalize;
+     #G1; #D; #N; #Heq; #tjN; nnormalize in Hind1 ⊢ %;
      nrewrite > (plus_n_O (length ? D)) in ⊢ (? ? ? (? ? % ?));
-(*
-     napplyS (app (substl D N@G1) (subst P (length T D) N) A (subst R (length T D) N) (subst S (length T D) N) ?).
-     *)
-     nlapply (subst_lemma R S N (length ? D) 0); #sl;
-     nrewrite < (plus_n_O ?) in sl; #sl;
-     nrewrite > sl;
-     napply app; nnormalize in Hind1;/2/;
+     nrewrite > (subst_lemma R S N ? 0);
+     napplyS app; /2/;
   ##|#G; #P; #Q; #R; #i; #tjR; #tjProd; #Hind1; #Hind2;
      #G1; #D; #N; #Heq; #tjN; nnormalize;
      napplyS abs;