X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Frt_transition%2Frpx_fsle.ma;h=29c6a5cd3de00374b4b48d5f291c924ef426cf7c;hb=bd53c4e895203eb049e75434f638f26b5a161a2b;hp=05b8ba41c7ee414285fcb9c8bab8219dd5a2849d;hpb=222044da28742b24584549ba86b1805a87def070;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_transition/rpx_fsle.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_transition/rpx_fsle.ma index 05b8ba41c..29c6a5cd3 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/rt_transition/rpx_fsle.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/rt_transition/rpx_fsle.ma @@ -12,21 +12,22 @@ (* *) (**************************************************************************) -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: "⦃L2, T1⦄ ⊆ ⦃L2, T0⦄" does not hold *) -(* Note: Take L0 = K0.ⓓ(ⓝW.V), L2 = K0.ⓓW, T0 = #0, T1 = ⬆*[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): ∀L0,T0,T1. ⦃G, L0⦄ ⊢ T0 ⬈[h] T1 → - ∀L2. ⦃G, L0⦄ ⊢⬈[h, T0] L2 → ⦃L2, T1⦄ ⊆ ⦃L0, T0⦄. -#h #G0 #L0 #T0 @(fqup_wf_ind_eq (Ⓕ) … G0 L0 T0) -G0 -L0 -T0 +(* Note: "❪L2, T1❫ ⊆ ❪L2, T0❫" does not hold *) +(* Note: Take L0 = K0.ⓓ(ⓝW.V), L2 = K0.ⓓW, T0 = #0, T1 = ⇧*[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): ∀L0,T0,T1. ❪G,L0❫ ⊢ T0 ⬈[h] T1 → + ∀L2. ❪G,L0❫ ⊢⬈[h,T0] L2 → ❪L2,T1❫ ⊆ ❪L0,T0❫. +#h #G0 #L0 #T0 @(fqup_wf_ind_eq (Ⓣ) … 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): ∀L0,T0,T1. ⦃G, L0⦄ ⊢ T0 ⬈[h] T1 → - ∀L2. ⦃G, L0⦄ ⊢⬈[h, T0] L2 → ⦃L2, T1⦄ ⊆ ⦃L0, T1⦄. +lemma rpx_cpx_conf_fsge_dx (h) (G): ∀L0,T0,T1. ❪G,L0❫ ⊢ T0 ⬈[h] T1 → + ∀L2. ❪G,L0❫ ⊢⬈[h,T0] L2 → ❪L2,T1❫ ⊆ ❪L0,T1❫. /3 width=5 by rpx_cpx_conf, rpx_fsge_comp/ qed-.