]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/basic_2/etc_new/drops/drops_drops.etc
theory of relocation updated .....
[helm.git] / matita / matita / contribs / lambdadelta / basic_2 / etc_new / drops / drops_drops.etc
diff --git a/matita/matita/contribs/lambdadelta/basic_2/etc_new/drops/drops_drops.etc b/matita/matita/contribs/lambdadelta/basic_2/etc_new/drops/drops_drops.etc
new file mode 100644 (file)
index 0000000..d7356d0
--- /dev/null
@@ -0,0 +1,23 @@
+lemma pippo: ∀L1,L2,t1. ⬇*[Ⓕ, t1] L1 ≡ L2 → ∀t2. ⬇*[Ⓕ, t2] L1 ≡ L2 →
+|t1| + ∥t2∥ = ∥t1∥ + |t2|.
+#L1 #L2 #t1 #H elim H -L1 -L2 -t1
+[ #t1 #Ht1 #t2 #H elim (drops_inv_atom1 … H) -H
+  #_ #Ht2 >Ht1 -Ht1 // >Ht2 -Ht2 //
+| #I #L1 #L2 #V #t1 #_ #IH #t2 #H normalize 
+
+lemma drop_conf_div: ∀I1,L,K,V1,m1. ⬇[m1] L ≡ K.ⓑ{I1}V1 →
+                     ∀I2,V2,m2. ⬇[m2] L ≡ K.ⓑ{I2}V2 →
+                     ∧∧ m1 = m2 & I1 = I2 & V1 = V2.
+#I1 #L #K #V1 #m1 #HLK1 #I2 #V2 #m2 #HLK2
+elim (yle_split m1 m2) #H
+elim (yle_inv_plus_sn … H) -H #m #Hm
+[ lapply (drop_conf_ge … HLK1 … HLK2 … Hm ?)
+| lapply (drop_conf_ge … HLK2 … HLK1 … Hm ?)
+] -HLK1 -HLK2 // #HK
+lapply (drop_fwd_length … HK) #H
+elim (discr_yplus_x_xy … H) -H
+[1,3: #H elim (ylt_yle_false (|K.ⓑ{I1}V1|) (∞)) // ]
+#H destruct
+lapply (drop_inv_O2 … HK) -HK #H destruct
+/2 width=1 by and3_intro/
+qed-.