X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Frt_computation%2Flfsx_lfsx.ma;h=7ca826d116941f719be727e7bf8f347191509bde;hb=632c54beaf67e68a1eeeec22274466157003b779;hp=5ea3071b041f5da29812ef6be0b9811b65803357;hpb=d0e3208d69d24a9dc9e066e381f1601bc8e109be;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/lfsx_lfsx.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/lfsx_lfsx.ma index 5ea3071b0..7ca826d11 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/lfsx_lfsx.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/lfsx_lfsx.ma @@ -18,9 +18,6 @@ include "basic_2/rt_computation/lfsx.ma". (* STRONGLY NORMALIZING LOCAL ENV.S FOR UNCOUNTED PARALLEL RT-TRANSITION ****) -axiom pippo: ∀h,o,p,I,G,L1,L2,V,T. ⦃G, L1⦄ ⊢ ⬈[h, V] L2 → - ∃∃L. ⦃G, L1⦄ ⊢ ⬈[h, ⓑ{p,I}V.T] L & L ≡[h, o, V] L2. - (* Advanced properties ******************************************************) lemma lfsx_lfdeq_trans: ∀h,o,G,L1,T. G ⊢ ⬈*[h, o, T] 𝐒⦃L1⦄ → @@ -33,37 +30,29 @@ qed-. (* Advanced forward lemmas **************************************************) -(* Basic_2A1: was: lsx_fwd_bind_sn *) -lemma lfsx_fwd_bind_sn: ∀h,o,p,I,G,L,V,T. G ⊢ ⬈*[h, o, ⓑ{p,I}V.T] 𝐒⦃L⦄ → +(* Basic_2A1: includes: lsx_fwd_bind_sn lsx_fwd_flat_sn *) +(* Basic_2A1: was: lsx_fwd_pair_sn *) +lemma lfsx_fwd_pair_sn: ∀h,o,I,G,L,V,T. G ⊢ ⬈*[h, o, ②{I}V.T] 𝐒⦃L⦄ → G ⊢ ⬈*[h, o, V] 𝐒⦃L⦄. -#h #o #p #I #G #L #V #T #H @(lfsx_ind … H) -L -#L1 #_ #IHL1 @lfsx_intro -#L2 #H #HnL12 elim (pippo … o p I … T H) -H -/6 width=4 by lfsx_lfdeq_trans, lfdeq_trans, 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 +#h #o #I #G #L #V #T #H @(lfsx_ind … H) -L #L1 #_ #IHL1 @lfsx_intro -#L2 #HL12 #HV @IHL1 /3 width=3 by lfdeq_fwd_flat_sn/ +#L2 #H #HnL12 elim (lfpx_pair_sn_split … o I … T H) -H +/6 width=4 by lfsx_lfdeq_trans, lfdeq_trans, lfdeq_fwd_pair_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/ +(* Basic_2A1: was: lsx_fwd_flat_dx *) +lemma lfsx_fwd_flat_dx: ∀h,o,I,G,L,V,T. G ⊢ ⬈*[h, o, ⓕ{I}V.T] 𝐒⦃L⦄ → + G ⊢ ⬈*[h, o, T] 𝐒⦃L⦄. +#h #o #I #G #L #V #T #H @(lfsx_ind … H) -L +#L1 #_ #IHL1 @lfsx_intro +#L2 #H #HnL12 elim (lfpx_flat_dx_split … o I … V … H) -H +/6 width=4 by lfsx_lfdeq_trans, lfdeq_trans, lfdeq_fwd_flat_dx/ qed-. -(* Basic inversion lemmas ***************************************************) +(* Advanced 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-. -*) \ No newline at end of file +(* Basic_2A1: was: lsx_inv_flat *) +lemma lfsx_inv_flat: ∀h,o,I,G,L,V,T. G ⊢ ⬈*[h, o, ⓕ{I}V.T] 𝐒⦃L⦄ → + G ⊢ ⬈*[h, o, V] 𝐒⦃L⦄ ∧ G ⊢ ⬈*[h, o, T] 𝐒⦃L⦄. +/3 width=3 by lfsx_fwd_pair_sn, lfsx_fwd_flat_dx, conj/ qed-.