X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambda_delta%2FBasic_2%2Funfold%2Ftpss_tpss.ma;h=fc340e1ad94e9ace7f58657232933ce12390c451;hb=7aa41e02e64bd09df253cc4267a44b4f49b16e03;hp=57e4fb199c5227f9201af5572981bd9cdbd01463;hpb=78f21d7d9014e5c7655f58239e4f1a128ea2c558;p=helm.git diff --git a/matita/matita/contribs/lambda_delta/Basic_2/unfold/tpss_tpss.ma b/matita/matita/contribs/lambda_delta/Basic_2/unfold/tpss_tpss.ma index 57e4fb199..fc340e1ad 100644 --- a/matita/matita/contribs/lambda_delta/Basic_2/unfold/tpss_tpss.ma +++ b/matita/matita/contribs/lambda_delta/Basic_2/unfold/tpss_tpss.ma @@ -20,7 +20,7 @@ include "Basic_2/unfold/tpss_lift.ma". (* Advanced properties ******************************************************) lemma tpss_tps: ∀L,T1,T2,d. L ⊢ T1 [d, 1] ≫* T2 → L ⊢ T1 [d, 1] ≫ T2. -#L #T1 #T2 #d #H @(tpss_ind … H) -H T2 // +#L #T1 #T2 #d #H @(tpss_ind … H) -T2 // #T #T2 #_ #HT2 #IHT1 lapply (tps_trans_ge … IHT1 … HT2 ?) // qed. @@ -28,31 +28,31 @@ qed. lemma tpss_strip_eq: ∀L,T0,T1,d1,e1. L ⊢ T0 [d1, e1] ≫* T1 → ∀T2,d2,e2. L ⊢ T0 [d2, e2] ≫ T2 → ∃∃T. L ⊢ T1 [d2, e2] ≫ T & L ⊢ T2 [d1, e1] ≫* T. -/3/ qed. +/3 width=3/ qed. lemma tpss_strip_neq: ∀L1,T0,T1,d1,e1. L1 ⊢ T0 [d1, e1] ≫* T1 → ∀L2,T2,d2,e2. L2 ⊢ T0 [d2, e2] ≫ T2 → (d1 + e1 ≤ d2 ∨ d2 + e2 ≤ d1) → ∃∃T. L2 ⊢ T1 [d2, e2] ≫ T & L1 ⊢ T2 [d1, e1] ≫* T. -/3/ qed. +/3 width=3/ qed. lemma tpss_strap1_down: ∀L,T1,T0,d1,e1. L ⊢ T1 [d1, e1] ≫* T0 → ∀T2,d2,e2. L ⊢ T0 [d2, e2] ≫ T2 → d2 + e2 ≤ d1 → ∃∃T. L ⊢ T1 [d2, e2] ≫ T & L ⊢ T [d1, e1] ≫* T2. -/3/ qed. +/3 width=3/ qed. lemma tpss_strap2_down: ∀L,T1,T0,d1,e1. L ⊢ T1 [d1, e1] ≫ T0 → ∀T2,d2,e2. L ⊢ T0 [d2, e2] ≫* T2 → d2 + e2 ≤ d1 → ∃∃T. L ⊢ T1 [d2, e2] ≫* T & L ⊢ T [d1, e1] ≫ T2. -/3/ qed. +/3 width=3/ qed. lemma tpss_split_up: ∀L,T1,T2,d,e. L ⊢ T1 [d, e] ≫* T2 → ∀i. d ≤ i → i ≤ d + e → ∃∃T. L ⊢ T1 [d, i - d] ≫* T & L ⊢ T [i, d + e - i] ≫* T2. -#L #T1 #T2 #d #e #H #i #Hdi #Hide @(tpss_ind … H) -H T2 -[ /2/ +#L #T1 #T2 #d #e #H #i #Hdi #Hide @(tpss_ind … H) -T2 +[ /2 width=3/ | #T #T2 #_ #HT12 * #T3 #HT13 #HT3 - elim (tps_split_up … HT12 … Hdi Hide) -HT12 Hide #T0 #HT0 #HT02 + elim (tps_split_up … HT12 … Hdi Hide) -HT12 -Hide #T0 #HT0 #HT02 elim (tpss_strap1_down … HT3 … HT0 ?) -T [2: