X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambda-delta%2FBasic-2%2Freduction%2Fcpr.ma;h=e06b8fa6d49b7f3c987d3548956b4ac795b914f5;hb=b264ad188cb0023a16dae105b037357fa75c5c1a;hp=cfd51af8aa87f32aac8b51ae9ce27f26a9b3d94d;hpb=e4f11cddf44dd9bba21f689d4f56e2d00d8d7bb5;p=helm.git diff --git a/matita/matita/contribs/lambda-delta/Basic-2/reduction/cpr.ma b/matita/matita/contribs/lambda-delta/Basic-2/reduction/cpr.ma index cfd51af8a..e06b8fa6d 100644 --- a/matita/matita/contribs/lambda-delta/Basic-2/reduction/cpr.ma +++ b/matita/matita/contribs/lambda-delta/Basic-2/reduction/cpr.ma @@ -1,15 +1,19 @@ -(* - ||M|| This file is part of HELM, an Hypertextual, Electronic - ||A|| Library of Mathematics, developed at the Computer Science - ||T|| Department of the University of Bologna, Italy. - ||I|| - ||T|| - ||A|| This file is distributed under the terms of the - \ / GNU General Public License Version 2 - \ / - V_______________________________________________________________ *) - -include "lambda-delta/reduction/tpr.ma". +(**************************************************************************) +(* ___ *) +(* ||M|| *) +(* ||A|| A project by Andrea Asperti *) +(* ||T|| *) +(* ||I|| Developers: *) +(* ||T|| The HELM team. *) +(* ||A|| http://helm.cs.unibo.it *) +(* \ / *) +(* \ / This file is distributed under the terms of the *) +(* v GNU General Public License Version 2 *) +(* *) +(**************************************************************************) + +include "Basic-2/grammar/cl_shift.ma". +include "Basic-2/reduction/tpr.ma". (* CONTEXT-SENSITIVE PARALLEL REDUCTION ON TERMS ****************************) @@ -26,22 +30,32 @@ lemma cpr_pr: ∀T1,T2. T1 ⇒ T2 → ∀L. L ⊢ T1 ⇒ T2. /2/ qed. lemma cpr_tps: ∀L,T1,T2,d,e. L ⊢ T1 [d, e] ≫ T2 → L ⊢ T1 ⇒ T2. -/3 width=5/ qed. +/3 width=5/ qed. lemma cpr_refl: ∀L,T. L ⊢ T ⇒ T. /2/ qed. +lemma cpr_bind_sn: ∀I,L,V1,V2,T1,T2. L ⊢ V1 ⇒ V2 → T1 ⇒ T2 → + L ⊢ 𝕓{I} V1. T1 ⇒ 𝕓{I} V2. T2. +#I #L #V1 #V2 #T1 #T2 * /3 width=5/ +qed. + +lemma cpr_bind_dx: ∀I,L,V1,V2,T1,T2. V1 ⇒ V2 → L. 𝕓{I} V2 ⊢ T1 ⇒ T2 → + L ⊢ 𝕓{I} V1. T1 ⇒ 𝕓{I} V2. T2. +#I #L #V1 #V2 #T1 #T2 #HV12 * #T #HT1 normalize #HT2 +elim (tps_split_up … HT2 1 ? ?) -HT2 // #T0