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 by or_introl/
-| #n #IHn #k >plus_plus_comm_23 #Hnl #H destruct
- lapply (deg_next_SO … Hnl) -Hnl #Hnl
- elim (IHn … Hnl) -IHn
+elim (cpxs_inv_sort1 … H) -H #n #d generalize in match k; -k @(nat_ind_plus … n) -n
+[ #k #_ #H -d destruct /2 width=1 by or_introl/
+| #n #IHn #k >plus_plus_comm_23 #Hnd #H destruct
+ lapply (deg_next_SO … Hnd) -Hnd #Hnd
+ elim (IHn … Hnd) -IHn
[ #H lapply (tsts_inv_atom1 … H) -H #H >H -H /2 width=1 by or_intror/
- | generalize in match Hnl; -Hnl @(nat_ind_plus … n) -n
+ | generalize in match Hnd; -Hnd @(nat_ind_plus … n) -n
/4 width=3 by cpxs_strap2, cpx_st, or_intror/
| >iter_SO >iter_n_Sm //
]
qed-.
(* Note: probably this is an inversion lemma *)
-lemma cpxs_fwd_delta: â\88\80h,g,I,G,L,K,V1,i. â\87©[i] L ≡ K.ⓑ{I}V1 →
- â\88\80V2. â\87§[0, i + 1] V1 ≡ V2 →
+lemma cpxs_fwd_delta: â\88\80h,g,I,G,L,K,V1,i. â¬\87[i] L ≡ K.ⓑ{I}V1 →
+ â\88\80V2. â¬\86[0, i + 1] V1 ≡ V2 →
∀U. ⦃G, L⦄ ⊢ #i ➡*[h, g] U →
#i ≂ U ∨ ⦃G, L⦄ ⊢ V2 ➡*[h, g] U.
#h #g #I #G #L #K #V1 #i #HLK #V2 #HV12 #U #H
qed-.
lemma cpxs_fwd_theta: ∀h,g,a,G,L,V1,V,T,U. ⦃G, L⦄ ⊢ ⓐV1.ⓓ{a}V.T ➡*[h, g] U →
- â\88\80V2. â\87§[0, 1] V1 ≡ V2 → ⓐV1.ⓓ{a}V.T ≂ U ∨
+ â\88\80V2. â¬\86[0, 1] V1 ≡ V2 → ⓐV1.ⓓ{a}V.T ≂ U ∨
⦃G, L⦄ ⊢ ⓓ{a}V.ⓐV2.T ➡*[h, g] U.
#h #g #a #G #L #V1 #V #T #U #H #V2 #HV12
elim (cpxs_inv_appl1 … H) -H *