X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambda_delta%2Fbasic_2%2Funfold%2Fthin_delift.ma;h=faf9f4506581989e39e0b52312fed0d1986a7bb0;hb=5ea90cbbb01fe0bf3b77221d9e6c87002982621f;hp=a28bf53e8b6ea054704a1ec53ea5e5d450ed8f6e;hpb=fc5a0d62ece398d8547dda0f429b9f1e24bca306;p=helm.git diff --git a/matita/matita/contribs/lambda_delta/basic_2/unfold/thin_delift.ma b/matita/matita/contribs/lambda_delta/basic_2/unfold/thin_delift.ma index a28bf53e8..faf9f4506 100644 --- a/matita/matita/contribs/lambda_delta/basic_2/unfold/thin_delift.ma +++ b/matita/matita/contribs/lambda_delta/basic_2/unfold/thin_delift.ma @@ -16,12 +16,24 @@ include "basic_2/unfold/delift_tpss.ma". include "basic_2/unfold/delift_ltpss.ma". include "basic_2/unfold/thin.ma". -(* DELIFT ON LOCAL ENVIRONMENTS *********************************************) +(* BASIC DELIFT ON LOCAL ENVIRONMENTS ***************************************) -(* Properties on inverse term relocation ************************************) +(* Inversion lemmas on inverse basic term relocation ************************) -lemma thin_delift1: ∀L1,L2,d,e. L1 [d, e] ≡ L2 → ∀V1,V2. L1 ⊢ V1 [d, e] ≡ V2 → - ∀I. L1.ⓑ{I}V1 [d + 1, e] ≡ L2.ⓑ{I}V2. +lemma thin_inv_delift1: ∀I,K1,V1,L2,d,e. ▼*[d, e] K1. ⓑ{I} V1 ≡ L2 → 0 < d → + ∃∃K2,V2. ▼*[d - 1, e] K1 ≡ K2 & + K1 ⊢ ▼*[d - 1, e] V1 ≡ V2 & + L2 = K2. ⓑ{I} V2. +#I #K1 #V1 #L2 #d #e * #X #HK1 #HL2 #e +elim (ltpss_inv_tpss11 … HK1 ?) -HK1 // #K #V #HK1 #HV1 #H destruct +elim (ldrop_inv_skip1 … HL2 ?) -HL2 // #K2 #V2 #HK2 #HV2 #H destruct +lapply (ltpss_tpss_trans_eq … HV1 … HK1) -HV1 /3 width=5/ +qed-. + +(* Properties on inverse basic term relocation ******************************) + +lemma thin_delift1: ∀L1,L2,d,e. ▼*[d, e] L1 ≡ L2 → ∀V1,V2. L1 ⊢ ▼*[d, e] V1 ≡ V2 → + ∀I. ▼*[d + 1, e] L1.ⓑ{I}V1 ≡ L2.ⓑ{I}V2. #L1 #L2 #d #e * #L #HL1 #HL2 #V1 #V2 * #V #HV1 #HV2 #I elim (ltpss_tpss_conf … HV1 … HL1) -HV1 #V0 #HV10 #HV0 elim (tpss_inv_lift1_be … HV0 … HL2 … HV2 ? ?) -HV0 //