]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/basic_2/relocation/drops.ma
update in basic_2 + web page
[helm.git] / matita / matita / contribs / lambdadelta / basic_2 / relocation / drops.ma
index 7702a5a94ff6bd9e5778a6825e58df57b5002a9c..57bf1bfe510eabe95e007e54f0d34a45b5fee7d0 100644 (file)
@@ -42,10 +42,18 @@ definition d_liftable1: predicate (relation2 lenv term) ≝
                         λR. ∀K,T. R K T → ∀b,f,L. ⬇*[b, f] L ≡ K →
                         ∀U. ⬆*[f] T ≡ U → R L U.
 
+definition d_liftable1_isuni: predicate (relation2 lenv term) ≝
+                              λR. ∀K,T. R K T → ∀b,f,L. ⬇*[b, f] L ≡ K → 𝐔⦃f⦄ →
+                              ∀U. ⬆*[f] T ≡ U → R L U.
+
 definition d_deliftable1: predicate (relation2 lenv term) ≝
                           λR. ∀L,U. R L U → ∀b,f,K. ⬇*[b, f] L ≡ K →
                           ∀T. ⬆*[f] T ≡ U → R K T.
 
+definition d_deliftable1_isuni: predicate (relation2 lenv term) ≝
+                                λR. ∀L,U. R L U → ∀b,f,K. ⬇*[b, f] L ≡ K → 𝐔⦃f⦄ →
+                                ∀T. ⬆*[f] T ≡ U → R K T.
+
 definition d_liftable2_sn: ∀C:Type[0]. ∀S:rtmap → relation C.
                            predicate (lenv → relation C) ≝
                            λC,S,R. ∀K,T1,T2. R K T1 T2 → ∀b,f,L. ⬇*[b, f] L ≡ K →
@@ -84,7 +92,7 @@ definition co_dropable_dx: predicate (rtmap → relation lenv) ≝
 definition co_dedropable_sn: predicate (rtmap → relation lenv) ≝
                              λR. ∀b,f,L1,K1. ⬇*[b, f] L1 ≡ K1 → ∀f1,K2. R f1 K1 K2 →
                              ∀f2. f ~⊚ f1 ≡ f2 →
-                             â\88\83â\88\83L2. R f2 L1 L2 & â¬\87*[b, f] L2 â\89¡ K2 & L1 â\89¡[f] L2.
+                             â\88\83â\88\83L2. R f2 L1 L2 & â¬\87*[b, f] L2 â\89¡ K2 & L1 â\89\90[f] L2.
 
 (* Basic properties *********************************************************)
 
@@ -235,7 +243,6 @@ lemma drops_fwd_isid: ∀b,f,L1,L2. ⬇*[b, f] L1 ≡ L2 → 𝐈⦃f⦄ → L1
 ]
 qed-.
 
-
 lemma drops_after_fwd_drop2: ∀b,f2,I,X,K. ⬇*[b, f2] X ≡ K.ⓘ{I} →
                              ∀f1,f. 𝐈⦃f1⦄ → f2 ⊚ ⫯f1 ≡ f → ⬇*[b, f] X ≡ K.
 #b #f2 #I #X #K #H #f1 #f #Hf1 #Hf elim (drops_fwd_drop2 … H) -H
@@ -425,10 +432,12 @@ qed-.
 
 (* Properties with context-sensitive equivalence for terms ******************)
 
-lemma ceq_lift_sn: d_liftable2_sn … liftsb ceq.
+lemma ceq_lift_sn: d_liftable2_sn … liftsb ceq_ext.
+#K #I1 #I2 #H <(ceq_ext_inv_eq … H) -I2
 /2 width=3 by ex2_intro/ qed-.
 
-lemma ceq_inv_lift_sn: d_deliftable2_sn … liftsb ceq.
+lemma ceq_inv_lift_sn: d_deliftable2_sn … liftsb ceq_ext.
+#L #J1 #J2 #H <(ceq_ext_inv_eq … H) -J2
 /2 width=3 by ex2_intro/ qed-.
 
 (* Note: d_deliftable2_sn cfull does not hold *)