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=b5ffc5e4f01fb19c230fb53128cc195719266f61;hb=ba575c0609015580c1419c17b350de19a158e8e3;hp=0653266ee7fc1c818e63109cf4304f75556fafcd;hpb=636c25914e83819c2f529edc891a7eb899499a97;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 0653266ee..b5ffc5e4f 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 @@ -20,85 +20,83 @@ include "basic_2/unfold/thin.ma". (* Inversion lemmas on inverse basic term relocation ************************) -lemma thin_inv_delift1: ∀I,K1,V1,L2,d,e. K1. ⓑ{I} V1 [d, e] ≡ L2 → 0 < d → - ∃∃K2,V2. K1 [d - 1, e] ≡ K2 & - K1 ⊢ V1 [d - 1, e] ≡ 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/ +elim (ltpss_sn_inv_tpss11 … HK1 ?) -HK1 // #K #V #HK1 #HV1 #H destruct +elim (ldrop_inv_skip1 … HL2 ?) -HL2 // #K2 #V2 #HK2 #HV2 #H destruct /3 width=5/ qed-. (* Properties 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_delift: ∀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 //