]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/basic_2/relocation/lexs_length.ma
renaming
[helm.git] / matita / matita / contribs / lambdadelta / basic_2 / relocation / lexs_length.ma
index 2ceec510bb182bd74f6b87bb24ae40094f84e291..71467ba72319444401782e16aa8ef9d32d1c7392 100644 (file)
@@ -19,9 +19,8 @@ include "basic_2/relocation/lexs.ma".
 
 (* Forward lemmas with length for local environments ************************)
 
-(* Basic_2A1: uses: lpx_sn_fwd_length *)
 lemma lexs_fwd_length: ∀RN,RP,f,L1,L2. L1 ⪤*[RN, RP, f] L2 → |L1| = |L2|.
-#RM #RP #f #L1 #L2 #H elim H -f -L1 -L2 //
+#RN #RP #f #L1 #L2 #H elim H -f -L1 -L2 //
 #f #I1 #I2 #L1 #L2 >length_bind >length_bind //
 qed-.
 
@@ -35,3 +34,13 @@ lemma lexs_length_cfull: ∀L1,L2. |L1| = |L2| → ∀f. L1 ⪤*[cfull, cfull, f
   elim (pn_split f) * #g #H destruct /3 width=1 by lexs_next, lexs_push/
 ]
 qed.
+
+lemma lexs_length_isid: ∀R,L1,L2. |L1| = |L2| →
+                        ∀f. 𝐈⦃f⦄ → L1 ⪤*[R, cfull, f] L2.
+#R #L1 elim L1 -L1
+[ #Y2 #H >(length_inv_zero_sn … H) -Y2 //
+| #L1 #I1 #IH #Y2 #H #f #Hf
+  elim (length_inv_succ_sn … H) -H #I2 #L2 #HL12 #H destruct
+  elim (isid_inv_gen … Hf) -Hf #g #Hg #H destruct /3 width=1 by lexs_push/
+]
+qed.