X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fcomputation%2Flsx_csx.ma;h=67f754b7bb918c0bfcf7a71ef34a25072f1cc49d;hb=c60524dec7ace912c416a90d6b926bee8553250b;hp=a4937895565993723302de6d6ffb95328d416e76;hpb=f10cfe417b6b8ec1c7ac85c6ecf5fb1b3fdf37db;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/computation/lsx_csx.ma b/matita/matita/contribs/lambdadelta/basic_2/computation/lsx_csx.ma index a49378955..67f754b7b 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/computation/lsx_csx.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/computation/lsx_csx.ma @@ -19,10 +19,10 @@ include "basic_2/computation/lcosx_cpx.ma". (* Advanced properties ******************************************************) -lemma lsx_lref_be_lpxs: ∀h,g,I,G,K1,V,i,d. d ≤ yinj i → ⦃G, K1⦄ ⊢ ⬊*[h, g] V → +lemma lsx_lref_be_lpxs: ∀h,g,I,G,K1,V,i,l. l ≤ yinj i → ⦃G, K1⦄ ⊢ ⬊*[h, g] V → ∀K2. G ⊢ ⬊*[h, g, V, 0] K2 → ⦃G, K1⦄ ⊢ ➡*[h, g] K2 → - ∀L2. ⬇[i] L2 ≡ K2.ⓑ{I}V → G ⊢ ⬊*[h, g, #i, d] L2. -#h #g #I #G #K1 #V #i #d #Hdi #H @(csx_ind_alt … H) -V + ∀L2. ⬇[i] L2 ≡ K2.ⓑ{I}V → G ⊢ ⬊*[h, g, #i, l] L2. +#h #g #I #G #K1 #V #i #l #Hli #H @(csx_ind_alt … H) -V #V0 #_ #IHV0 #K2 #H @(lsx_ind … H) -K2 #K0 #HK0 #IHK0 #HK10 #L0 #HLK0 @lsx_intro #L2 #HL02 #HnL02 elim (lpx_drop_conf … HLK0 … HL02) -HL02 @@ -35,25 +35,25 @@ elim (eq_term_dec V0 V2) #HnV02 destruct [ -IHV0 -HV02 -HK0 | -IHK0 -HnL02 -HLK0 ] qed. -lemma lsx_lref_be: ∀h,g,I,G,K,V,i,d. d ≤ yinj i → ⦃G, K⦄ ⊢ ⬊*[h, g] V → +lemma lsx_lref_be: ∀h,g,I,G,K,V,i,l. l ≤ yinj i → ⦃G, K⦄ ⊢ ⬊*[h, g] V → G ⊢ ⬊*[h, g, V, 0] K → - ∀L. ⬇[i] L ≡ K.ⓑ{I}V → G ⊢ ⬊*[h, g, #i, d] L. + ∀L. ⬇[i] L ≡ K.ⓑ{I}V → G ⊢ ⬊*[h, g, #i, l] L. /2 width=8 by lsx_lref_be_lpxs/ qed. (* Main properties **********************************************************) -theorem csx_lsx: ∀h,g,G,L,T. ⦃G, L⦄ ⊢ ⬊*[h, g] T → ∀d. G ⊢ ⬊*[h, g, T, d] L. +theorem csx_lsx: ∀h,g,G,L,T. ⦃G, L⦄ ⊢ ⬊*[h, g] T → ∀l. G ⊢ ⬊*[h, g, T, l] L. #h #g #G #L #T @(fqup_wf_ind_eq … G L T) -G -L -T #Z #Y #X #IH #G #L * * // -[ #i #HG #HL #HT #H #d destruct +[ #i #HG #HL #HT #H #l destruct elim (lt_or_ge i (|L|)) /2 width=1 by lsx_lref_free/ - elim (ylt_split i d) /2 width=1 by lsx_lref_skip/ - #Hdi #Hi elim (drop_O1_lt (Ⓕ) … Hi) -Hi + elim (ylt_split i l) /2 width=1 by lsx_lref_skip/ + #Hli #Hi elim (drop_O1_lt (Ⓕ) … Hi) -Hi #I #K #V #HLK lapply (csx_inv_lref_bind … HLK … H) -H /4 width=6 by lsx_lref_be, fqup_lref/ -| #a #I #V #T #HG #HL #HT #H #d destruct +| #a #I #V #T #HG #HL #HT #H #l destruct elim (csx_fwd_bind … H) -H /3 width=1 by lsx_bind/ -| #I #V #T #HG #HL #HT #H #d destruct +| #I #V #T #HG #HL #HT #H #l destruct elim (csx_fwd_flat … H) -H /3 width=1 by lsx_flat/ ] qed.