X-Git-Url: http://matita.cs.unibo.it/gitweb/?p=helm.git;a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Frt_computation%2Fcpxs_theq.ma;h=5174890e003412e35653dbe8902b879457de567a;hp=58ee196139ccbdc68c1d9fb25f3fdc344ab856a6;hb=f308429a0fde273605a2330efc63268b4ac36c99;hpb=87f57ddc367303c33e19c83cd8989cd561f3185b diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/cpxs_theq.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/cpxs_theq.ma index 58ee19613..5174890e0 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/cpxs_theq.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/cpxs_theq.ma @@ -21,7 +21,7 @@ include "basic_2/rt_computation/lpxs_cpxs.ma". (* Forward lemmas with head equivalence for terms ***************************) -lemma cpxs_fwd_sort: ∀h,G,L,X2,s1. ⦃G, L⦄ ⊢ ⋆s1 ⬈*[h] X2 → ⋆s1 ⩳ X2. +lemma cpxs_fwd_sort: ∀h,G,L,X2,s1. ⦃G,L⦄ ⊢ ⋆s1 ⬈*[h] X2 → ⋆s1 ⩳ X2. #h #G #L #X2 #s1 #H elim (cpxs_inv_sort1 … H) -H #s2 #H destruct // qed-. @@ -30,8 +30,8 @@ qed-. (* Basic_2A1: was: cpxs_fwd_delta *) lemma cpxs_fwd_delta_drops: ∀h,I,G,L,K,V1,i. ⬇*[i] L ≘ K.ⓑ{I}V1 → ∀V2. ⬆*[↑i] V1 ≘ V2 → - ∀X2. ⦃G, L⦄ ⊢ #i ⬈*[h] X2 → - ∨∨ #i ⩳ X2 | ⦃G, L⦄ ⊢ V2 ⬈*[h] X2. + ∀X2. ⦃G,L⦄ ⊢ #i ⬈*[h] X2 → + ∨∨ #i ⩳ X2 | ⦃G,L⦄ ⊢ V2 ⬈*[h] X2. #h #I #G #L #K #V1 #i #HLK #V2 #HV12 #X2 #H elim (cpxs_inv_lref1_drops … H) -H /2 width=1 by or_introl/ * #I0 #K0 #V0 #U0 #HLK0 #HVU0 #HU0 @@ -40,8 +40,8 @@ lapply (drops_mono … HLK0 … HLK) -HLK0 #H destruct qed-. (* Basic_1: was just: pr3_iso_beta *) -lemma cpxs_fwd_beta: ∀h,p,G,L,V,W,T,X2. ⦃G, L⦄ ⊢ ⓐV.ⓛ{p}W.T ⬈*[h] X2 → - ∨∨ ⓐV.ⓛ{p}W.T ⩳ X2 | ⦃G, L⦄ ⊢ ⓓ{p}ⓝW.V.T ⬈*[h] X2. +lemma cpxs_fwd_beta: ∀h,p,G,L,V,W,T,X2. ⦃G,L⦄ ⊢ ⓐV.ⓛ{p}W.T ⬈*[h] X2 → + ∨∨ ⓐV.ⓛ{p}W.T ⩳ X2 | ⦃G,L⦄ ⊢ ⓓ{p}ⓝW.V.T ⬈*[h] X2. #h #p #G #L #V #W #T #X2 #H elim (cpxs_inv_appl1 … H) -H * [ #V0 #T0 #_ #_ #H destruct /2 width=1 by theq_pair, or_introl/ | #b #W0 #T0 #HT0 #HU @@ -53,9 +53,9 @@ lemma cpxs_fwd_beta: ∀h,p,G,L,V,W,T,X2. ⦃G, L⦄ ⊢ ⓐV.ⓛ{p}W.T ⬈*[h] ] qed-. -lemma cpxs_fwd_theta: ∀h,p,G,L,V1,V,T,X2. ⦃G, L⦄ ⊢ ⓐV1.ⓓ{p}V.T ⬈*[h] X2 → +lemma cpxs_fwd_theta: ∀h,p,G,L,V1,V,T,X2. ⦃G,L⦄ ⊢ ⓐV1.ⓓ{p}V.T ⬈*[h] X2 → ∀V2. ⬆*[1] V1 ≘ V2 → - ∨∨ ⓐV1.ⓓ{p}V.T ⩳ X2 | ⦃G, L⦄ ⊢ ⓓ{p}V.ⓐV2.T ⬈*[h] X2. + ∨∨ ⓐV1.ⓓ{p}V.T ⩳ X2 | ⦃G,L⦄ ⊢ ⓓ{p}V.ⓐV2.T ⬈*[h] X2. #h #p #G #L #V1 #V #T #X2 #H #V2 #HV12 elim (cpxs_inv_appl1 … H) -H * [ -HV12 #V0 #T0 #_ #_ #H destruct /2 width=1 by theq_pair, or_introl/ @@ -84,13 +84,13 @@ elim (cpxs_inv_appl1 … H) -H * ] qed-. -lemma cpxs_fwd_cast: ∀h,G,L,W,T,X2. ⦃G, L⦄ ⊢ ⓝW.T ⬈*[h] X2 → - ∨∨ ⓝW. T ⩳ X2 | ⦃G, L⦄ ⊢ T ⬈*[h] X2 | ⦃G, L⦄ ⊢ W ⬈*[h] X2. +lemma cpxs_fwd_cast: ∀h,G,L,W,T,X2. ⦃G,L⦄ ⊢ ⓝW.T ⬈*[h] X2 → + ∨∨ ⓝW. T ⩳ X2 | ⦃G,L⦄ ⊢ T ⬈*[h] X2 | ⦃G,L⦄ ⊢ W ⬈*[h] X2. #h #G #L #W #T #X2 #H elim (cpxs_inv_cast1 … H) -H /2 width=1 by or3_intro1, or3_intro2/ * #W0 #T0 #_ #_ #H destruct /2 width=1 by theq_pair, or3_intro0/ qed-. -lemma cpxs_fwd_cnx: ∀h,G,L,T1. ⦃G, L⦄ ⊢ ⬈[h] 𝐍⦃T1⦄ → - ∀X2. ⦃G, L⦄ ⊢ T1 ⬈*[h] X2 → T1 ⩳ X2. +lemma cpxs_fwd_cnx: ∀h,G,L,T1. ⦃G,L⦄ ⊢ ⬈[h] 𝐍⦃T1⦄ → + ∀X2. ⦃G,L⦄ ⊢ T1 ⬈*[h] X2 → T1 ⩳ X2. /3 width=5 by cpxs_inv_cnx1, tdeq_theq/ qed-.