-lemma cpxs_fwd_cnx: ∀h,g,L,T. ⦃h, L⦄ ⊢ 𝐍[g]⦃T⦄ → ∀U. ⦃h, L⦄ ⊢ T ➡*[g] U → T ≃ U.
-#h #g #L #T #HT #U #H
->(cpxs_inv_cnx1 … H HT) -L -T //
+lemma cpxs_fwd_cnx: ∀h,g,G,L,T. ⦃G, L⦄ ⊢ 𝐍[h, g]⦃T⦄ → ∀U. ⦃G, L⦄ ⊢ T ➡*[h, g] U → T ≃ U.
+#h #g #G #L #T #HT #U #H
+>(cpxs_inv_cnx1 … H HT) -G -L -T //
+qed-.
+
+lemma cpxs_fwd_sort: ∀h,g,G,L,U,k. ⦃G, L⦄ ⊢ ⋆k ➡*[h, g] U →
+ ⋆k ≃ U ∨ ⦃G, L⦄ ⊢ ⋆(next h k) ➡*[h, g] U.
+#h #g #G #L #U #k #H
+elim (cpxs_inv_sort1 … H) -H #n #l generalize in match k; -k @(nat_ind_plus … n) -n
+[ #k #_ #H -l destruct /2 width=1/
+| #n #IHn #k >plus_plus_comm_23 #Hnl #H destruct
+ lapply (deg_next_SO … Hnl) -Hnl #Hnl
+ elim (IHn … Hnl) -IHn
+ [ #H lapply (tstc_inv_atom1 … H) -H #H >H -H /2 width=1/
+ | generalize in match Hnl; -Hnl @(nat_ind_plus … n) -n /2 width=1/
+ #n #_ /4 width=3/
+ | >iter_SO >iter_n_Sm //
+ ]
+]