X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Frt_transition%2Flpx_reqx.ma;h=dfd3672410eec66fc9fbf97bf3f5c497862ca145;hb=613d8642b1154dde0c026cbdcd96568910198251;hp=ad623b08b5f7063a0e94085dea367c1807b52b76;hpb=adb9ba187619cea977d1d22971eba27eb437cd6a;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lpx_reqx.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lpx_reqx.ma index ad623b08b..dfd367241 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lpx_reqx.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lpx_reqx.ma @@ -16,17 +16,41 @@ include "static_2/static/reqx_req.ma". include "basic_2/rt_transition/rpx_reqx.ma". include "basic_2/rt_transition/rpx_lpx.ma". -(* UNBOUND PARALLEL RT-TRANSITION FOR FULL LOCAL ENVIRONMENTS ***************) +(* EXTENDED PARALLEL RT-TRANSITION FOR FULL LOCAL ENVIRONMENTS **************) (* Properties with sort-irrelevant equivalence for local environments *******) +lemma reqx_lpx_trans_rpx (G) (L) (T:term): + ∀L1. L1 ≛[T] L → ∀L2. ❪G,L❫ ⊢ ⬈ L2 → ❪G,L❫ ⊢ ⬈[T] L2. +/3 width=1 by lpx_rpx, reqx_rpx_trans/ qed. + (* Basic_2A1: uses: lleq_lpx_trans *) -lemma reqx_lpx_trans (h) (G): ∀L2,K2. ⦃G,L2⦄ ⊢ ⬈[h] K2 → - ∀L1. ∀T:term. L1 ≛[T] L2 → - ∃∃K1. ⦃G,L1⦄ ⊢ ⬈[h] K1 & K1 ≛[T] K2. -#h #G #L2 #K2 #HLK2 #L1 #T #HL12 -lapply (lpx_rpx … T HLK2) -HLK2 #HLK2 -elim (reqx_rpx_trans … HLK2 … HL12) -L2 #K #H #HK2 -elim (rpx_inv_lpx_req … H) -H #K1 #HLK1 #HK1 -/3 width=5 by req_reqx_trans, ex2_intro/ +lemma reqx_lpx_trans (G): + ∀L2,K2. ❪G,L2❫ ⊢ ⬈ K2 → ∀L1. ∀T:term. L1 ≛[T] L2 → + ∃∃K1. ❪G,L1❫ ⊢ ⬈ K1 & K1 ≛[T] K2. +#G #L2 #K2 #HLK2 #L1 #T #HL12 +lapply (lpx_rpx … T … HLK2) -HLK2 #HLK2 +lapply (reqx_rpx_trans … HL12 … HLK2) -L2 #H +elim (rpx_fwd_lpx_req … H) -H #K1 #HLK1 #HK12 +/3 width=3 by req_reqx, ex2_intro/ +qed-. + +(* Inversion lemmas with sort-irrelevant equivalence for local environments *) + +lemma rpx_inv_reqx_lpx (G) (T): + ∀L1,L2. ❪G,L1❫ ⊢ ⬈[T] L2 → + ∃∃L. L1 ≛[T] L & ❪G,L❫ ⊢ ⬈ L2. +#G #T #L1 #L2 #H +elim (rpx_inv_req_lpx … H) -H #L #HL1 #HL2 +/3 width=3 by req_reqx, ex2_intro/ +qed-. + +(* Forward lemmas with sort-irrelevant equivalence for local environments ***) + +lemma rpx_fwd_lpx_reqx (G) (T): + ∀L1,L2. ❪G,L1❫ ⊢ ⬈[T] L2 → + ∃∃L. ❪G,L1❫ ⊢ ⬈ L & L ≛[T] L2. +#G #T #L1 #L2 #H +elim (rpx_fwd_lpx_req … H) -H #L #HL1 #HL2 +/3 width=3 by req_reqx, ex2_intro/ qed-.