X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Frt_computation%2Fjsx_drops.ma;h=2fb26c5b5cfd693a0ce58353561b79e9339329bf;hb=3c7b4071a9ac096b02334c1d47468776b948e2de;hp=93368d55426d59ca1d2286588edf2ba39245bf0b;hpb=db020b4218272e2e35641ce3bc3b0a9b3afda899;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/jsx_drops.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/jsx_drops.ma index 93368d554..2fb26c5b5 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/jsx_drops.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/jsx_drops.ma @@ -15,14 +15,14 @@ include "static_2/relocation/drops.ma". include "basic_2/rt_computation/jsx.ma". -(* COMPATIBILITY OF STRONG NORMALIZATION FOR UNBOUND RT-TRANSITION **********) +(* COMPATIBILITY OF STRONG NORMALIZATION FOR EXTENDED RT-TRANSITION *********) (* Forward lemmas with uniform slicing for local environments ***************) -lemma jsx_fwd_drops_atom_sn (h) (b) (G): - ∀L1,L2. G ⊢ L1 ⊒[h] L2 → - ∀f. 𝐔⦃f⦄ → ⬇*[b,f]L1 ≘ ⋆ → ⬇*[b,f]L2 ≘ ⋆. -#h #b #G #L1 #L2 #H elim H -L1 -L2 +lemma jsx_fwd_drops_atom_sn (b) (G): + ∀L1,L2. G ⊢ L1 ⊒ L2 → + ∀f. 𝐔❪f❫ → ⇩*[b,f]L1 ≘ ⋆ → ⇩*[b,f]L2 ≘ ⋆. +#b #G #L1 #L2 #H elim H -L1 -L2 [ #f #_ #H // | #I #K1 #K2 #_ #IH #f #Hf #H | #I #K1 #K2 #V #_ #HV #IH #f #Hf #H @@ -33,11 +33,11 @@ elim (drops_inv_bind1_isuni … H) -H [3,6: // |*: * -Hf ] ] qed-. -lemma jsx_fwd_drops_unit_sn (h) (b) (G): - ∀L1,L2. G ⊢ L1 ⊒[h] L2 → - ∀f. 𝐔⦃f⦄ → ∀I,K1. ⬇*[b,f]L1 ≘ K1.ⓤ{I} → - ∃∃K2. G ⊢ K1 ⊒[h] K2 & ⬇*[b,f]L2 ≘ K2.ⓤ{I}. -#h #b #G #L1 #L2 #H elim H -L1 -L2 +lemma jsx_fwd_drops_unit_sn (b) (G): + ∀L1,L2. G ⊢ L1 ⊒ L2 → + ∀f. 𝐔❪f❫ → ∀I,K1. ⇩*[b,f]L1 ≘ K1.ⓤ[I] → + ∃∃K2. G ⊢ K1 ⊒ K2 & ⇩*[b,f]L2 ≘ K2.ⓤ[I]. +#b #G #L1 #L2 #H elim H -L1 -L2 [ #f #_ #J #Y1 #H lapply (drops_inv_atom1 … H) -H * #H #_ destruct | #I #K1 #K2 #HK12 #IH #f #Hf #J #Y1 #H @@ -47,17 +47,17 @@ elim (drops_inv_bind1_isuni … H) -H [3,6: // |*: * -Hf ] [1,3: #Hf #H destruct -IH /3 width=3 by drops_refl, ex2_intro/ |2,4: #g #Hg #HK1 #H destruct - elim (IH … Hg … HK1) -K1 -Hg #Y2 #HY12 #HKY2 + elim (IH … Hg … HK1) -K1 -Hg #Y2 #HY12 #HKY2 /3 width=3 by drops_drop, ex2_intro/ ] qed-. -lemma jsx_fwd_drops_pair_sn (h) (b) (G): - ∀L1,L2. G ⊢ L1 ⊒[h] L2 → - ∀f. 𝐔⦃f⦄ → ∀I,K1,V. ⬇*[b,f]L1 ≘ K1.ⓑ{I}V → - ∨∨ ∃∃K2. G ⊢ K1 ⊒[h] K2 & ⬇*[b,f]L2 ≘ K2.ⓑ{I}V - | ∃∃K2. G ⊢ K1 ⊒[h] K2 & ⬇*[b,f]L2 ≘ K2.ⓧ & G ⊢ ⬈*[h,V] 𝐒⦃K2⦄. -#h #b #G #L1 #L2 #H elim H -L1 -L2 +lemma jsx_fwd_drops_pair_sn (b) (G): + ∀L1,L2. G ⊢ L1 ⊒ L2 → + ∀f. 𝐔❪f❫ → ∀I,K1,V. ⇩*[b,f]L1 ≘ K1.ⓑ[I]V → + ∨∨ ∃∃K2. G ⊢ K1 ⊒ K2 & ⇩*[b,f]L2 ≘ K2.ⓑ[I]V + | ∃∃K2. G ⊢ K1 ⊒ K2 & ⇩*[b,f]L2 ≘ K2.ⓧ & G ⊢ ⬈*𝐒[V] K2. +#b #G #L1 #L2 #H elim H -L1 -L2 [ #f #_ #J #Y1 #X1 #H lapply (drops_inv_atom1 … H) -H * #H #_ destruct | #I #K1 #K2 #HK12 #IH #f #Hf #J #Y1 #X1 #H