-/2 width=3 by llpx_sn_alt_fwd_lref_aux/ qed-.
-
-(* Basic inversion lemmas ****************************************************)
-
-fact llpx_sn_alt_inv_flat_aux: ∀R,L1,L2,X,d. llpx_sn_alt R d X L1 L2 →
- ∀I,V,T. X = ⓕ{I}V.T →
- llpx_sn_alt R d V L1 L2 ∧ llpx_sn_alt R d T L1 L2.
-#R #L1 #L2 #X #d * -L1 -L2 -X -d
-#L1 #L2 #X #d #H1X #H2X #HL12
-#I #V #T #H destruct
-@conj @llpx_sn_alt_intro // -HL12
-/4 width=8 by nlift_flat_sn, nlift_flat_dx/
-qed-.
-
-lemma llpx_sn_alt_inv_flat: ∀R,I,L1,L2,V,T,d. llpx_sn_alt R d (ⓕ{I}V.T) L1 L2 →
- llpx_sn_alt R d V L1 L2 ∧ llpx_sn_alt R d T L1 L2.
-/2 width=4 by llpx_sn_alt_inv_flat_aux/ qed-.
-
-fact llpx_sn_alt_inv_bind_aux: ∀R,L1,L2,X,d. llpx_sn_alt R d X L1 L2 →
- ∀a,I,V,T. X = ⓑ{a,I}V.T →
- llpx_sn_alt R d V L1 L2 ∧ llpx_sn_alt R (⫯d) T (L1.ⓑ{I}V) (L2.ⓑ{I}V).
-#R #L1 #L2 #X #d * -L1 -L2 -X -d
-#L1 #L2 #X #d #H1X #H2X #HL12
-#a #I #V #T #H destruct
-@conj @llpx_sn_alt_intro [3,6: normalize /2 width=1 by eq_f2/ ] -HL12
-#I1 #I2 #K1 #K2 #W1 #W2 #i #Hdi #H #HLK1 #HLK2
-[1,2: /4 width=9 by nlift_bind_sn/ ]
-lapply (yle_inv_succ1 … Hdi) -Hdi * #Hdi #Hi
-lapply (ldrop_inv_drop1_lt … HLK1 ?) -HLK1 /2 width=1 by ylt_O/ #HLK1
-lapply (ldrop_inv_drop1_lt … HLK2 ?) -HLK2 /2 width=1 by ylt_O/ #HLK2
-[ @(H1X … HLK1 HLK2) | @(H2X … HLK1 HLK2) ] // -I1 -I2 -L1 -L2 -K1 -K2 -W1 -W2
-@nlift_bind_dx <plus_minus_m_m /2 width=2 by ylt_O/
+#R #L1 #L2 #d #i #H elim (llpx_sn_alt_inv_alt … H) -H
+#HL12 #IH elim (lt_or_ge i (|L1|)) /3 width=1 by or3_intro0, conj/
+elim (ylt_split i d) /3 width=1 by or3_intro1/
+#Hdi #HL1 elim (ldrop_O1_lt … HL1)
+#I1 #K1 #V1 #HLK1 elim (ldrop_O1_lt L2 i) //
+#I2 #K2 #V2 #HLK2 elim (IH … HLK1 HLK2) -IH
+/3 width=9 by nlift_lref_be_SO, or3_intro2, ex5_5_intro/