X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Frt_computation%2Fcsx.ma;h=07d9a8a9ef1bed6bf1ac6be234832b192e6143d1;hb=80ecd5486c6013f6c297173f41432fd1d93814ef;hp=437457f659dc964c076482e3e70ee7f66322b235;hpb=b118146b97959e6a6dde18fdd014b8e1e676a2d1;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/csx.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/csx.ma index 437457f65..07d9a8a9e 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/csx.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/csx.ma @@ -28,11 +28,11 @@ interpretation (* Basic eliminators ********************************************************) lemma csx_ind (G) (L) (Q:predicate …): - (∀T1. ❪G,L❫ ⊢ ⬈*𝐒 T1 → - (∀T2. ❪G,L❫ ⊢ T1 ⬈ T2 → (T1 ≅ T2 → ⊥) → Q T2) → + (∀T1. ❨G,L❩ ⊢ ⬈*𝐒 T1 → + (∀T2. ❨G,L❩ ⊢ T1 ⬈ T2 → (T1 ≅ T2 → ⊥) → Q T2) → Q T1 ) → - ∀T. ❪G,L❫ ⊢ ⬈*𝐒 T → Q T. + ∀T. ❨G,L❩ ⊢ ⬈*𝐒 T → Q T. #G #L #Q #H0 #T1 #H elim H -T1 /5 width=1 by SN_intro/ qed-. @@ -41,15 +41,15 @@ qed-. (* Basic_1: was just: sn3_pr2_intro *) lemma csx_intro (G) (L): - ∀T1. (∀T2. ❪G,L❫ ⊢ T1 ⬈ T2 → (T1 ≅ T2 → ⊥) → ❪G,L❫ ⊢ ⬈*𝐒 T2) → - ❪G,L❫ ⊢ ⬈*𝐒 T1. + ∀T1. (∀T2. ❨G,L❩ ⊢ T1 ⬈ T2 → (T1 ≅ T2 → ⊥) → ❨G,L❩ ⊢ ⬈*𝐒 T2) → + ❨G,L❩ ⊢ ⬈*𝐒 T1. /4 width=1 by SN_intro/ qed. (* Basic forward lemmas *****************************************************) fact csx_fwd_pair_sn_aux (G) (L): - ∀U. ❪G,L❫ ⊢ ⬈*𝐒 U → - ∀I,V,T. U = ②[I]V.T → ❪G,L❫ ⊢ ⬈*𝐒 V. + ∀U. ❨G,L❩ ⊢ ⬈*𝐒 U → + ∀I,V,T. U = ②[I]V.T → ❨G,L❩ ⊢ ⬈*𝐒 V. #G #L #U #H elim H -H #U0 #_ #IH #I #V #T #H destruct @csx_intro #V2 #HLV2 #HV2 @(IH (②[I]V2.T)) -IH /2 width=3 by cpx_pair_sn/ -HLV2 #H @@ -58,12 +58,12 @@ qed-. (* Basic_1: was just: sn3_gen_head *) lemma csx_fwd_pair_sn (G) (L): - ∀I,V,T. ❪G,L❫ ⊢ ⬈*𝐒 ②[I]V.T → ❪G,L❫ ⊢ ⬈*𝐒 V. + ∀I,V,T. ❨G,L❩ ⊢ ⬈*𝐒 ②[I]V.T → ❨G,L❩ ⊢ ⬈*𝐒 V. /2 width=5 by csx_fwd_pair_sn_aux/ qed-. fact csx_fwd_bind_dx_aux (G) (L): - ∀U. ❪G,L❫ ⊢ ⬈*𝐒 U → - ∀p,I,V,T. U = ⓑ[p,I]V.T → ❪G,L.ⓑ[I]V❫ ⊢ ⬈*𝐒 T. + ∀U. ❨G,L❩ ⊢ ⬈*𝐒 U → + ∀p,I,V,T. U = ⓑ[p,I]V.T → ❨G,L.ⓑ[I]V❩ ⊢ ⬈*𝐒 T. #G #L #U #H elim H -H #U0 #_ #IH #p #I #V #T #H destruct @csx_intro #T2 #HLT2 #HT2 @(IH (ⓑ[p, I]V.T2)) -IH /2 width=3 by cpx_bind/ -HLT2 #H @@ -72,12 +72,12 @@ qed-. (* Basic_1: was just: sn3_gen_bind *) lemma csx_fwd_bind_dx (G) (L): - ∀p,I,V,T. ❪G,L❫ ⊢ ⬈*𝐒 ⓑ[p,I]V.T → ❪G,L.ⓑ[I]V❫ ⊢ ⬈*𝐒 T. + ∀p,I,V,T. ❨G,L❩ ⊢ ⬈*𝐒 ⓑ[p,I]V.T → ❨G,L.ⓑ[I]V❩ ⊢ ⬈*𝐒 T. /2 width=4 by csx_fwd_bind_dx_aux/ qed-. fact csx_fwd_flat_dx_aux (G) (L): - ∀U. ❪G,L❫ ⊢ ⬈*𝐒 U → - ∀I,V,T. U = ⓕ[I]V.T → ❪G,L❫ ⊢ ⬈*𝐒 T. + ∀U. ❨G,L❩ ⊢ ⬈*𝐒 U → + ∀I,V,T. U = ⓕ[I]V.T → ❨G,L❩ ⊢ ⬈*𝐒 T. #G #L #U #H elim H -H #U0 #_ #IH #I #V #T #H destruct @csx_intro #T2 #HLT2 #HT2 @(IH (ⓕ[I]V.T2)) -IH /2 width=3 by cpx_flat/ -HLT2 #H @@ -86,17 +86,17 @@ qed-. (* Basic_1: was just: sn3_gen_flat *) lemma csx_fwd_flat_dx (G) (L): - ∀I,V,T. ❪G,L❫ ⊢ ⬈*𝐒 ⓕ[I]V.T → ❪G,L❫ ⊢ ⬈*𝐒 T. + ∀I,V,T. ❨G,L❩ ⊢ ⬈*𝐒 ⓕ[I]V.T → ❨G,L❩ ⊢ ⬈*𝐒 T. /2 width=5 by csx_fwd_flat_dx_aux/ qed-. lemma csx_fwd_bind (G) (L): - ∀p,I,V,T. ❪G,L❫ ⊢ ⬈*𝐒 ⓑ[p,I]V.T → - ∧∧ ❪G,L❫ ⊢ ⬈*𝐒 V & ❪G,L.ⓑ[I]V❫ ⊢ ⬈*𝐒 T. + ∀p,I,V,T. ❨G,L❩ ⊢ ⬈*𝐒 ⓑ[p,I]V.T → + ∧∧ ❨G,L❩ ⊢ ⬈*𝐒 V & ❨G,L.ⓑ[I]V❩ ⊢ ⬈*𝐒 T. /3 width=3 by csx_fwd_pair_sn, csx_fwd_bind_dx, conj/ qed-. lemma csx_fwd_flat (G) (L): - ∀I,V,T. ❪G,L❫ ⊢ ⬈*𝐒 ⓕ[I]V.T → - ∧∧ ❪G,L❫ ⊢ ⬈*𝐒 V & ❪G,L❫ ⊢ ⬈*𝐒 T. + ∀I,V,T. ❨G,L❩ ⊢ ⬈*𝐒 ⓕ[I]V.T → + ∧∧ ❨G,L❩ ⊢ ⬈*𝐒 V & ❨G,L❩ ⊢ ⬈*𝐒 T. /3 width=3 by csx_fwd_pair_sn, csx_fwd_flat_dx, conj/ qed-. (* Basic_1: removed theorems 14: