X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Frt_computation%2Fcsx_lpx.ma;fp=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Frt_computation%2Fcsx_lpx.ma;h=04b75e3ead82d4e864f3e4e73c42ed3710c61611;hb=57ae1762497a5f3ea75740e2908e04adb8642cc2;hp=df0dc99486aca15856efc8c4453c01ed549f9924;hpb=ca7327c20c6031829fade8bb84a3a1bb66113f54;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/csx_lpx.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/csx_lpx.ma index df0dc9948..04b75e3ea 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/csx_lpx.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/csx_lpx.ma @@ -19,19 +19,19 @@ include "basic_2/rt_computation/csx_cpxs.ma". (* Properties with unbound parallel rt-transition on all entries ************) -lemma csx_lpx_conf (h) (G): - ∀L1,T. ❪G,L1❫ ⊢ ⬈*[h] 𝐒❪T❫ → - ∀L2. ❪G,L1❫ ⊢ ⬈[h] L2 → ❪G,L2❫ ⊢ ⬈*[h] 𝐒❪T❫. +lemma csx_lpx_conf (h) (G) (L1): + ∀T. ❪G,L1❫ ⊢ ⬈*𝐒[h] T → + ∀L2. ❪G,L1❫ ⊢ ⬈[h] L2 → ❪G,L2❫ ⊢ ⬈*𝐒[h] T. #h #G #L1 #T #H @(csx_ind_cpxs … H) -T /4 width=3 by csx_intro, lpx_cpx_trans/ qed-. (* Advanced properties ******************************************************) -lemma csx_abst (h) (G): - ∀p,L,W. ❪G,L❫ ⊢ ⬈*[h] 𝐒❪W❫ → - ∀T. ❪G,L.ⓛW❫ ⊢ ⬈*[h] 𝐒❪T❫ → ❪G,L❫ ⊢ ⬈*[h] 𝐒❪ⓛ[p]W.T❫. -#h #G #p #L #W #HW +lemma csx_abst (h) (G) (L): + ∀p,W. ❪G,L❫ ⊢ ⬈*𝐒[h] W → + ∀T. ❪G,L.ⓛW❫ ⊢ ⬈*𝐒[h] T → ❪G,L❫ ⊢ ⬈*𝐒[h] ⓛ[p]W.T. +#h #G #L #p #W #HW @(csx_ind … HW) -W #W #_ #IHW #T #HT @(csx_ind … HT) -T #T #HT #IHT @csx_intro #X #H1 #H2 @@ -44,10 +44,10 @@ elim (tneqx_inv_pair … H2) -H2 ] qed. -lemma csx_abbr (h) (G): - ∀p,L,V. ❪G,L❫ ⊢ ⬈*[h] 𝐒❪V❫ → - ∀T. ❪G,L.ⓓV❫ ⊢ ⬈*[h] 𝐒❪T❫ → ❪G,L❫ ⊢ ⬈*[h] 𝐒❪ⓓ[p]V.T❫. -#h #G #p #L #V #HV +lemma csx_abbr (h) (G) (L): + ∀p,V. ❪G,L❫ ⊢ ⬈*𝐒[h] V → + ∀T. ❪G,L.ⓓV❫ ⊢ ⬈*𝐒[h] T → ❪G,L❫ ⊢ ⬈*𝐒[h] ⓓ[p]V.T. +#h #G #L #p #V #HV @(csx_ind … HV) -V #V #_ #IHV #T #HT @(csx_ind_cpxs … HT) -T #T #HT #IHT @csx_intro #X #H1 #H2 @@ -63,17 +63,17 @@ elim (cpx_inv_abbr1 … H1) -H1 * ] qed. -lemma csx_bind (h) (G): - ∀p,I,L,V. ❪G,L❫ ⊢ ⬈*[h] 𝐒❪V❫ → - ∀T. ❪G,L.ⓑ[I]V❫ ⊢ ⬈*[h] 𝐒❪T❫ → ❪G,L❫ ⊢ ⬈*[h] 𝐒❪ⓑ[p,I]V.T❫. -#h #G #p * #L #V #HV #T #HT +lemma csx_bind (h) (G) (L): + ∀p,I,V. ❪G,L❫ ⊢ ⬈*𝐒[h] V → + ∀T. ❪G,L.ⓑ[I]V❫ ⊢ ⬈*𝐒[h] T → ❪G,L❫ ⊢ ⬈*𝐒[h] ⓑ[p,I]V.T. +#h #G #L #p * #V #HV #T #HT /2 width=1 by csx_abbr, csx_abst/ qed. -fact csx_appl_theta_aux (h) (G): - ∀p,L,U. ❪G,L❫ ⊢ ⬈*[h] 𝐒❪U❫ → ∀V1,V2. ⇧[1] V1 ≘ V2 → - ∀V,T. U = ⓓ[p]V.ⓐV2.T → ❪G,L❫ ⊢ ⬈*[h] 𝐒❪ⓐV1.ⓓ[p]V.T❫. -#h #G #p #L #X #H +fact csx_appl_theta_aux (h) (G) (L): + ∀p,U. ❪G,L❫ ⊢ ⬈*𝐒[h] U → ∀V1,V2. ⇧[1] V1 ≘ V2 → + ∀V,T. U = ⓓ[p]V.ⓐV2.T → ❪G,L❫ ⊢ ⬈*𝐒[h] ⓐV1.ⓓ[p]V.T. +#h #G #L #p #X #H @(csx_ind_cpxs … H) -X #X #HVT #IHVT #V1 #V2 #HV12 #V #T #H destruct lapply (csx_fwd_pair_sn … HVT) #HV lapply (csx_fwd_bind_dx … HVT) -HVT #HVT @@ -105,7 +105,7 @@ elim (cpx_inv_appl1 … HL) -HL * ] qed-. -lemma csx_appl_theta (h) (G): - ∀p,L,V,V2,T. ❪G,L❫ ⊢ ⬈*[h] 𝐒❪ⓓ[p]V.ⓐV2.T❫ → - ∀V1. ⇧[1] V1 ≘ V2 → ❪G,L❫ ⊢ ⬈*[h] 𝐒❪ⓐV1.ⓓ[p]V.T❫. +lemma csx_appl_theta (h) (G) (L): + ∀p,V,V2,T. ❪G,L❫ ⊢ ⬈*𝐒[h] ⓓ[p]V.ⓐV2.T → + ∀V1. ⇧[1] V1 ≘ V2 → ❪G,L❫ ⊢ ⬈*𝐒[h] ⓐV1.ⓓ[p]V.T. /2 width=5 by csx_appl_theta_aux/ qed.