X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambda-delta%2FBasic-2%2Freduction%2Fcpr_lift.ma;fp=matita%2Fmatita%2Fcontribs%2Flambda-delta%2FBasic-2%2Freduction%2Fcpr_lift.ma;h=42703c24d35c98b44e872a1dd5a0e3b82fb18dad;hb=95fe49b9bd546ee4f0d27dce7267d7285eb81b01;hp=89f84afaae32483a85310369548f7639caf18c9e;hpb=b8a57655cd700e4c4513a71fa592eb4b982febf7;p=helm.git diff --git a/matita/matita/contribs/lambda-delta/Basic-2/reduction/cpr_lift.ma b/matita/matita/contribs/lambda-delta/Basic-2/reduction/cpr_lift.ma index 89f84afaa..42703c24d 100644 --- a/matita/matita/contribs/lambda-delta/Basic-2/reduction/cpr_lift.ma +++ b/matita/matita/contribs/lambda-delta/Basic-2/reduction/cpr_lift.ma @@ -12,20 +12,44 @@ (* *) (**************************************************************************) +include "Basic-2/unfold/tpss_lift.ma". include "Basic-2/reduction/tpr_lift.ma". include "Basic-2/reduction/cpr.ma". (* CONTEXT-SENSITIVE PARALLEL REDUCTION ON TERMS ****************************) -(* Relocation properties ****************************************************) - -(* Basic-1: was: pr2_lift *) +(* Advanced properties ******************************************************) -(* Basic-1: was: pr2_gen_lift *) +lemma cpr_delta: ∀L,K,V1,W1,W2,i. + ↓[0, i] L ≡ K. 𝕓{Abbr} V1 → K ⊢ V1 [0, |L| - i - 1] ≫* W1 → + ↑[0, i + 1] W1 ≡ W2 → L ⊢ #i ⇒ W2. +#L #K #V1 #W1 #W2 #i #HLK #HVW1 #HW12 +@ex2_1_intro [2: // | skip | @tpss_subst /2 width=6/ ] (**) (* /4 width=6/ is too slow *) +qed. (* Advanced inversion lemmas ************************************************) +(* Basic-1: was: pr2_gen_lref *) +lemma cpr_inv_lref1: ∀L,T2,i. L ⊢ #i ⇒ T2 → + T2 = #i ∨ + ∃∃K,V1,T1. ↓[0, i] L ≡ K. 𝕓{Abbr} V1 & + K ⊢ V1 [0, |L| - i - 1] ≫* T1 & + ↑[0, i + 1] T1 ≡ T2 & + i < |L|. +#L #T2 #i * #X #H +>(tpr_inv_atom1 … H) -H #H +elim (tpss_inv_lref1 … H) -H /2/ +* /3 width=6/ +qed. + (* Basic-1: was: pr2_gen_abst *) lemma cpr_inv_abst1: ∀V1,T1,U2. 𝕔{Abst} V1. T1 ⇒ U2 → ∃∃V2,T2. V1 ⇒ V2 & T1 ⇒ T2 & U2 = 𝕔{Abst} V2. T2. /2/ qed. + +(* Relocation properties ****************************************************) + +(* Basic-1: was: pr2_lift *) + +(* Basic-1: was: pr2_gen_lift *) +