]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/basic_2/rt_transition/rpx_fsle.ma
update in ground_2, static_2, basic_2, apps_2, alpha_1
[helm.git] / matita / matita / contribs / lambdadelta / basic_2 / rt_transition / rpx_fsle.ma
index 05b8ba41c7ee414285fcb9c8bab8219dd5a2849d..29c6a5cd3de00374b4b48d5f291c924ef426cf7c 100644 (file)
 (*                                                                        *)
 (**************************************************************************)
 
-include "basic_2/static/fsle_drops.ma".
-include "basic_2/static/rex_fsle.ma".
+include "static_2/static/fsle_drops.ma".
+include "static_2/static/rex_fsle.ma".
 include "basic_2/rt_transition/rpx_length.ma".
+include "basic_2/rt_transition/rpx_drops.ma".
 include "basic_2/rt_transition/rpx_fqup.ma".
 
 (* UNBOUND PARALLEL RT-TRANSITION FOR REFERRED LOCAL ENVIRONMENTS ***********)
 
 (* Forward lemmas with free variables inclusion for restricted closures *****)
 
-(* Note: "â¦\83L2, T1â¦\84 â\8a\86 â¦\83L2, T0â¦\84" does not hold *)
-(* Note: Take L0 = K0.â\93\93\93\9dW.V), L2 = K0.â\93\93W, T0 = #0, T1 = â¬\86*[1]V *)
-(* Note: This invalidates rpxs_cpx_conf: "∀h,G. s_r_confluent1 … (cpx h G) (rpxs h G)" *)
-lemma rpx_cpx_conf_fsge (h) (G): â\88\80L0,T0,T1. â¦\83G, L0â¦\84 ⊢ T0 ⬈[h] T1 →
-                                 â\88\80L2. â¦\83G, L0â¦\84 â\8a¢â¬\88[h, T0] L2 â\86\92 â¦\83L2, T1â¦\84 â\8a\86 â¦\83L0, T0â¦\84.
-#h #G0 #L0 #T0 @(fqup_wf_ind_eq (â\92») … G0 L0 T0) -G0 -L0 -T0
+(* Note: "â\9dªL2, T1â\9d« â\8a\86 â\9dªL2, T0â\9d«" does not hold *)
+(* Note: Take L0 = K0.â\93\93\93\9dW.V), L2 = K0.â\93\93W, T0 = #0, T1 = â\87§*[1]V *)
+(* Note: This invalidates rpxs_cpx_conf: "∀h, G. s_r_confluent1 … (cpx h G) (rpxs h G)" *)
+lemma rpx_cpx_conf_fsge (h) (G): â\88\80L0,T0,T1. â\9dªG,L0â\9d« ⊢ T0 ⬈[h] T1 →
+                                 â\88\80L2. â\9dªG,L0â\9d« â\8a¢â¬\88[h,T0] L2 â\86\92 â\9dªL2,T1â\9d« â\8a\86 â\9dªL0,T0â\9d«.
+#h #G0 #L0 #T0 @(fqup_wf_ind_eq (â\93\89) … G0 L0 T0) -G0 -L0 -T0
 #G #L #T #IH #G0 #L0 * *
 [ #s #HG #HL #HT #X #HX #Y #HY destruct -IH
   elim (cpx_inv_sort1 … HX) -HX #H destruct
@@ -72,9 +73,10 @@ lemma rpx_cpx_conf_fsge (h) (G): ∀L0,T0,T1. ⦃G, L0⦄ ⊢ T0 ⬈[h] T1 →
   [ #V1 #T1 #HV01 #HT01 #H destruct
     lapply (rpx_fwd_length … HV0) #H0
     /4 width=6 by fsle_bind_eq, fsle_fwd_pair_sn/
-  | #T #HT #HXT #H1 #H2 destruct
+  | #T #H2T0 #HTX #H1 #H2 destruct
+    lapply (rpx_inv_lifts_bi … HT0 (Ⓣ) … H2T0) -HT0 [6:|*: /3 width=2 by drops_refl, drops_drop/ ] #HT
     lapply (rpx_fwd_length … HV0) #H0
-    /3 width=8 by fsle_inv_lifts_sn/
+    /5 width=6 by fsle_bind_dx_dx, fsle_lifts_dx, fqup_zeta/
   ]
 | #I #V0 #X0 #HG #HL #HT #X #HX #Y #HY destruct
   elim (rex_inv_flat … HY) -HY #HV0 #HX0
@@ -131,6 +133,6 @@ lemma cpx_rex_conf (R) (h) (G): s_r_confluent1 … (cpx h G) (rex R).
 lemma rpx_cpx_conf (h) (G): s_r_confluent1 … (cpx h G) (rpx h G).
 /2 width=5 by cpx_rex_conf/ qed-.
 
-lemma rpx_cpx_conf_fsge_dx (h) (G): â\88\80L0,T0,T1. â¦\83G, L0â¦\84 ⊢ T0 ⬈[h] T1 →
-                                    â\88\80L2. â¦\83G, L0â¦\84 â\8a¢â¬\88[h, T0] L2 â\86\92 â¦\83L2, T1â¦\84 â\8a\86 â¦\83L0, T1â¦\84.
+lemma rpx_cpx_conf_fsge_dx (h) (G): â\88\80L0,T0,T1. â\9dªG,L0â\9d« ⊢ T0 ⬈[h] T1 →
+                                    â\88\80L2. â\9dªG,L0â\9d« â\8a¢â¬\88[h,T0] L2 â\86\92 â\9dªL2,T1â\9d« â\8a\86 â\9dªL0,T1â\9d«.
 /3 width=5 by rpx_cpx_conf, rpx_fsge_comp/ qed-.