X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Frt_computation%2Flfsx.ma;h=14c939fac5121022b5d4693e760721fdf2ad70a2;hb=be2870b722324a1813ac9e72ebcb2cda6c8733d7;hp=51596c44ec4fb87958468d7f14c43492bd6f46fd;hpb=5224d5d0ff327a2360c9acd282af66ceed8788fc;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/lfsx.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/lfsx.ma index 51596c44e..14c939fac 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/lfsx.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/lfsx.ma @@ -27,7 +27,7 @@ interpretation (* Basic eliminators ********************************************************) -(* Basic_2A1: was: lsx_ind *) +(* Basic_2A1: uses: lsx_ind *) lemma lfsx_ind: ∀h,o,G,T. ∀R:predicate lenv. (∀L1. G ⊢ ⬈*[h, o, T] 𝐒⦃L1⦄ → (∀L2. ⦃G, L1⦄ ⊢ ⬈[h, T] L2 → (L1 ≡[h, o, T] L2 → ⊥) → R L2) → @@ -40,61 +40,33 @@ qed-. (* Basic properties *********************************************************) -(* Basic_2A1: was: lsx_intro *) +(* Basic_2A1: uses: lsx_intro *) lemma lfsx_intro: ∀h,o,G,L1,T. (∀L2. ⦃G, L1⦄ ⊢ ⬈[h, T] L2 → (L1 ≡[h, o, T] L2 → ⊥) → G ⊢ ⬈*[h, o, T] 𝐒⦃L2⦄) → G ⊢ ⬈*[h, o, T] 𝐒⦃L1⦄. /5 width=1 by lfdeq_sym, SN_intro/ qed. -(* + +(* Basic_2A1: uses: lsx_sort *) lemma lfsx_sort: ∀h,o,G,L,s. G ⊢ ⬈*[h, o, ⋆s] 𝐒⦃L⦄. #h #o #G #L1 #s @lfsx_intro #L2 #H #Hs elim Hs -Hs elim (lfpx_inv_sort … H) -H * [ #H1 #H2 destruct // -| #I #K1 #K2 #V1 #V2 #HK12 #H1 #H2 destruct - @lfdeq_sort +| #I1 #I2 #K1 #K2 #HK12 #H1 #H2 destruct + /4 width=4 by lfdeq_sort, lfxs_isid, frees_sort, frees_inv_sort/ +] qed. -lemma lfsx_gref: ∀h,o,G,L,l,p. G ⊢ ⬈*[h, o, §p, l] L. -#h #o #G #L1 #l #p @lfsx_intro -#L2 #HL12 #H elim H -H -/3 width=4 by lfpx_fwd_length, lfdeq_gref/ +(* Basic_2A1: uses: lsx_gref *) +lemma lfsx_gref: ∀h,o,G,L,p. G ⊢ ⬈*[h, o, §p] 𝐒⦃L⦄. +#h #o #G #L1 #s @lfsx_intro +#L2 #H #Hs elim Hs -Hs elim (lfpx_inv_gref … H) -H * +[ #H1 #H2 destruct // +| #I1 #I2 #K1 #K2 #HK12 #H1 #H2 destruct + /4 width=4 by lfdeq_gref, lfxs_isid, frees_gref, frees_inv_gref/ +] qed. -(* Basic forward lemmas *****************************************************) - -lemma lfsx_fwd_bind_sn: ∀h,o,a,I,G,L,V,T,l. G ⊢ ⬈*[h, o, ⓑ{a,I}V.T, l] L → - G ⊢ ⬈*[h, o, V, l] L. -#h #o #a #I #G #L #V #T #l #H @(lfsx_ind … H) -L -#L1 #_ #IHL1 @lfsx_intro -#L2 #HL12 #HV @IHL1 /3 width=4 by lfdeq_fwd_bind_sn/ -qed-. - -lemma lfsx_fwd_flat_sn: ∀h,o,I,G,L,V,T,l. G ⊢ ⬈*[h, o, ⓕ{I}V.T, l] L → - G ⊢ ⬈*[h, o, V, l] L. -#h #o #I #G #L #V #T #l #H @(lfsx_ind … H) -L -#L1 #_ #IHL1 @lfsx_intro -#L2 #HL12 #HV @IHL1 /3 width=3 by lfdeq_fwd_flat_sn/ -qed-. - -lemma lfsx_fwd_flat_dx: ∀h,o,I,G,L,V,T,l. G ⊢ ⬈*[h, o, ⓕ{I}V.T, l] L → - G ⊢ ⬈*[h, o, T, l] L. -#h #o #I #G #L #V #T #l #H @(lfsx_ind … H) -L -#L1 #_ #IHL1 @lfsx_intro -#L2 #HL12 #HV @IHL1 /3 width=3 by lfdeq_fwd_flat_dx/ -qed-. - -lemma lfsx_fwd_pair_sn: ∀h,o,I,G,L,V,T,l. G ⊢ ⬈*[h, o, ②{I}V.T, l] L → - G ⊢ ⬈*[h, o, V, l] L. -#h #o * /2 width=4 by lfsx_fwd_bind_sn, lfsx_fwd_flat_sn/ -qed-. - -(* Basic inversion lemmas ***************************************************) - -lemma lfsx_inv_flat: ∀h,o,I,G,L,V,T,l. G ⊢ ⬈*[h, o, ⓕ{I}V.T, l] L → - G ⊢ ⬈*[h, o, V, l] L ∧ G ⊢ ⬈*[h, o, T, l] L. -/3 width=3 by lfsx_fwd_flat_sn, lfsx_fwd_flat_dx, conj/ qed-. - -(* Basic_2A1: removed theorems 5: - lsx_atom lsx_sort lsx_gref lsx_ge_up lsx_ge -*) +(* Basic_2A1: removed theorems 9: + lsx_ge_up lsx_ge + lsxa_ind lsxa_intro lsxa_lleq_trans lsxa_lpxs_trans lsxa_intro_lpx lsx_lsxa lsxa_inv_lsx *)