X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fdynamic%2Fcnv_preserve_sub.ma;fp=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fdynamic%2Fcnv_preserve_sub.ma;h=a77772154ad63061957cdc24a4a9b950cfd89b2c;hb=8ec019202bff90959cf1a7158b309e7f83fa222e;hp=76ff1a2a1c7d69d12bae7f37c2ef4984b820da6b;hpb=33d0a7a9029859be79b25b5a495e0f30dab11f37;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/dynamic/cnv_preserve_sub.ma b/matita/matita/contribs/lambdadelta/basic_2/dynamic/cnv_preserve_sub.ma index 76ff1a2a1..a77772154 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/dynamic/cnv_preserve_sub.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/dynamic/cnv_preserve_sub.ma @@ -21,39 +21,39 @@ include "basic_2/dynamic/cnv.ma". (* Inductive premises for the preservation results **************************) definition IH_cnv_cpm_trans_lpr (h) (a): relation3 genv lenv term ≝ - λG,L1,T1. ❪G,L1❫ ⊢ T1 ![h,a] → - ∀n,T2. ❪G,L1❫ ⊢ T1 ➡[h,n] T2 → - ∀L2. ❪G,L1❫ ⊢ ➡[h,0] L2 → ❪G,L2❫ ⊢ T2 ![h,a]. + λG,L1,T1. ❨G,L1❩ ⊢ T1 ![h,a] → + ∀n,T2. ❨G,L1❩ ⊢ T1 ➡[h,n] T2 → + ∀L2. ❨G,L1❩ ⊢ ➡[h,0] L2 → ❨G,L2❩ ⊢ T2 ![h,a]. definition IH_cnv_cpms_trans_lpr (h) (a): relation3 genv lenv term ≝ - λG,L1,T1. ❪G,L1❫ ⊢ T1 ![h,a] → - ∀n,T2. ❪G,L1❫ ⊢ T1 ➡*[h,n] T2 → - ∀L2. ❪G,L1❫ ⊢ ➡[h,0] L2 → ❪G,L2❫ ⊢ T2 ![h,a]. + λG,L1,T1. ❨G,L1❩ ⊢ T1 ![h,a] → + ∀n,T2. ❨G,L1❩ ⊢ T1 ➡*[h,n] T2 → + ∀L2. ❨G,L1❩ ⊢ ➡[h,0] L2 → ❨G,L2❩ ⊢ T2 ![h,a]. definition IH_cnv_cpm_conf_lpr (h) (a): relation3 genv lenv term ≝ - λG,L0,T0. ❪G,L0❫ ⊢ T0 ![h,a] → - ∀n1,T1. ❪G,L0❫ ⊢ T0 ➡[h,n1] T1 → ∀n2,T2. ❪G,L0❫ ⊢ T0 ➡[h,n2] T2 → - ∀L1. ❪G,L0❫ ⊢ ➡[h,0] L1 → ∀L2. ❪G,L0❫ ⊢ ➡[h,0] L2 → - ∃∃T. ❪G,L1❫ ⊢ T1 ➡*[h,n2-n1] T & ❪G,L2❫ ⊢ T2 ➡*[h,n1-n2] T. + λG,L0,T0. ❨G,L0❩ ⊢ T0 ![h,a] → + ∀n1,T1. ❨G,L0❩ ⊢ T0 ➡[h,n1] T1 → ∀n2,T2. ❨G,L0❩ ⊢ T0 ➡[h,n2] T2 → + ∀L1. ❨G,L0❩ ⊢ ➡[h,0] L1 → ∀L2. ❨G,L0❩ ⊢ ➡[h,0] L2 → + ∃∃T. ❨G,L1❩ ⊢ T1 ➡*[h,n2-n1] T & ❨G,L2❩ ⊢ T2 ➡*[h,n1-n2] T. definition IH_cnv_cpms_strip_lpr (h) (a): relation3 genv lenv term ≝ - λG,L0,T0. ❪G,L0❫ ⊢ T0 ![h,a] → - ∀n1,T1. ❪G,L0❫ ⊢ T0 ➡*[h,n1] T1 → ∀n2,T2. ❪G,L0❫ ⊢ T0 ➡[h,n2] T2 → - ∀L1. ❪G,L0❫ ⊢ ➡[h,0] L1 → ∀L2. ❪G,L0❫ ⊢ ➡[h,0] L2 → - ∃∃T. ❪G,L1❫ ⊢ T1 ➡*[h,n2-n1] T & ❪G,L2❫ ⊢ T2 ➡*[h,n1-n2] T. + λG,L0,T0. ❨G,L0❩ ⊢ T0 ![h,a] → + ∀n1,T1. ❨G,L0❩ ⊢ T0 ➡*[h,n1] T1 → ∀n2,T2. ❨G,L0❩ ⊢ T0 ➡[h,n2] T2 → + ∀L1. ❨G,L0❩ ⊢ ➡[h,0] L1 → ∀L2. ❨G,L0❩ ⊢ ➡[h,0] L2 → + ∃∃T. ❨G,L1❩ ⊢ T1 ➡*[h,n2-n1] T & ❨G,L2❩ ⊢ T2 ➡*[h,n1-n2] T. definition IH_cnv_cpms_conf_lpr (h) (a): relation3 genv lenv term ≝ - λG,L0,T0. ❪G,L0❫ ⊢ T0 ![h,a] → - ∀n1,T1. ❪G,L0❫ ⊢ T0 ➡*[h,n1] T1 → ∀n2,T2. ❪G,L0❫ ⊢ T0 ➡*[h,n2] T2 → - ∀L1. ❪G,L0❫ ⊢ ➡[h,0] L1 → ∀L2. ❪G,L0❫ ⊢ ➡[h,0] L2 → - ∃∃T. ❪G,L1❫ ⊢ T1 ➡*[h,n2-n1] T & ❪G,L2❫ ⊢ T2 ➡*[h,n1-n2] T. + λG,L0,T0. ❨G,L0❩ ⊢ T0 ![h,a] → + ∀n1,T1. ❨G,L0❩ ⊢ T0 ➡*[h,n1] T1 → ∀n2,T2. ❨G,L0❩ ⊢ T0 ➡*[h,n2] T2 → + ∀L1. ❨G,L0❩ ⊢ ➡[h,0] L1 → ∀L2. ❨G,L0❩ ⊢ ➡[h,0] L2 → + ∃∃T. ❨G,L1❩ ⊢ T1 ➡*[h,n2-n1] T & ❨G,L2❩ ⊢ T2 ➡*[h,n1-n2] T. (* Auxiliary properties for preservation ************************************) fact cnv_cpms_trans_lpr_sub (h) (a): ∀G0,L0,T0. - (∀G1,L1,T1. ❪G0,L0,T0❫ > ❪G1,L1,T1❫ → IH_cnv_cpm_trans_lpr h a G1 L1 T1) → - ∀G1,L1,T1. ❪G0,L0,T0❫ > ❪G1,L1,T1❫ → IH_cnv_cpms_trans_lpr h a G1 L1 T1. + (∀G1,L1,T1. ❨G0,L0,T0❩ > ❨G1,L1,T1❩ → IH_cnv_cpm_trans_lpr h a G1 L1 T1) → + ∀G1,L1,T1. ❨G0,L0,T0❩ > ❨G1,L1,T1❩ → IH_cnv_cpms_trans_lpr h a G1 L1 T1. #h #a #G0 #L0 #T0 #IH #G1 #L1 #T1 #H01 #HT1 #n #T2 #H @(cpms_ind_dx … H) -n -T2 /3 width=7 by fpbg_cpms_trans/ @@ -61,12 +61,12 @@ qed-. fact cnv_cpm_conf_lpr_sub (h) (a): ∀G0,L0,T0. - (∀G1,L1,T1. ❪G0,L0,T0❫ > ❪G1,L1,T1❫ → IH_cnv_cpms_conf_lpr h a G1 L1 T1) → - ∀G1,L1,T1. ❪G0,L0,T0❫ > ❪G1,L1,T1❫ → IH_cnv_cpm_conf_lpr h a G1 L1 T1. + (∀G1,L1,T1. ❨G0,L0,T0❩ > ❨G1,L1,T1❩ → IH_cnv_cpms_conf_lpr h a G1 L1 T1) → + ∀G1,L1,T1. ❨G0,L0,T0❩ > ❨G1,L1,T1❩ → IH_cnv_cpm_conf_lpr h a G1 L1 T1. /3 width=8 by cpm_cpms/ qed-. fact cnv_cpms_strip_lpr_sub (h) (a): ∀G0,L0,T0. - (∀G1,L1,T1. ❪G0,L0,T0❫ > ❪G1,L1,T1❫ → IH_cnv_cpms_conf_lpr h a G1 L1 T1) → - ∀G1,L1,T1. ❪G0,L0,T0❫ > ❪G1,L1,T1❫ → IH_cnv_cpms_strip_lpr h a G1 L1 T1. + (∀G1,L1,T1. ❨G0,L0,T0❩ > ❨G1,L1,T1❩ → IH_cnv_cpms_conf_lpr h a G1 L1 T1) → + ∀G1,L1,T1. ❨G0,L0,T0❩ > ❨G1,L1,T1❩ → IH_cnv_cpms_strip_lpr h a G1 L1 T1. /3 width=8 by cpm_cpms/ qed-.