]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/basic_2/rt_computation/cpts.ma
update in ground_2, static_2, basic_2, apps_2, alpha_1
[helm.git] / matita / matita / contribs / lambdadelta / basic_2 / rt_computation / cpts.ma
index 24b6655b5fd7bb965f053fd8d31cc12195c594dc..9818e6d84254c54842d2d2525268e3cfc0615709 100644 (file)
@@ -29,51 +29,51 @@ interpretation
 
 lemma cpts_ind_sn (h) (G) (L) (T2) (Q:relation2 …):
                   Q 0 T2 →
-                  (â\88\80n1,n2,T1,T. â¦\83G,Lâ¦\84 â\8a¢ T1 â¬\86[h,n1] T â\86\92 â¦\83G,Lâ¦\84 ⊢ T ⬆*[h,n2] T2 → Q n2 T → Q (n1+n2) T1) →
-                  â\88\80n,T1. â¦\83G,Lâ¦\84 ⊢ T1 ⬆*[h,n] T2 → Q n T1.
+                  (â\88\80n1,n2,T1,T. â\9dªG,Lâ\9d« â\8a¢ T1 â¬\86[h,n1] T â\86\92 â\9dªG,Lâ\9d« ⊢ T ⬆*[h,n2] T2 → Q n2 T → Q (n1+n2) T1) →
+                  â\88\80n,T1. â\9dªG,Lâ\9d« ⊢ T1 ⬆*[h,n] T2 → Q n T1.
 #h #G #L #T2 #Q @ltc_ind_sn_refl //
 qed-.
 
 lemma cpts_ind_dx (h) (G) (L) (T1) (Q:relation2 …):
                   Q 0 T1 →
-                  (â\88\80n1,n2,T,T2. â¦\83G,Lâ¦\84 â\8a¢ T1 â¬\86*[h,n1] T â\86\92 Q n1 T â\86\92 â¦\83G,Lâ¦\84 ⊢ T ⬆[h,n2] T2 → Q (n1+n2) T2) →
-                  â\88\80n,T2. â¦\83G,Lâ¦\84 ⊢ T1 ⬆*[h,n] T2 → Q n T2.
+                  (â\88\80n1,n2,T,T2. â\9dªG,Lâ\9d« â\8a¢ T1 â¬\86*[h,n1] T â\86\92 Q n1 T â\86\92 â\9dªG,Lâ\9d« ⊢ T ⬆[h,n2] T2 → Q (n1+n2) T2) →
+                  â\88\80n,T2. â\9dªG,Lâ\9d« ⊢ T1 ⬆*[h,n] T2 → Q n T2.
 #h #G #L #T1 #Q @ltc_ind_dx_refl //
 qed-.
 
 (* Basic properties *********************************************************)
 
 lemma cpt_cpts (h) (G) (L):
-      â\88\80n,T1,T2. â¦\83G,Lâ¦\84 â\8a¢ T1 â¬\86[h,n] T2 â\86\92 â¦\83G,Lâ¦\84 ⊢ T1 ⬆*[h,n] T2.
+      â\88\80n,T1,T2. â\9dªG,Lâ\9d« â\8a¢ T1 â¬\86[h,n] T2 â\86\92 â\9dªG,Lâ\9d« ⊢ T1 ⬆*[h,n] T2.
 /2 width=1 by ltc_rc/ qed.
 
 lemma cpts_step_sn (h) (G) (L):
-      â\88\80n1,T1,T. â¦\83G,Lâ¦\84 ⊢ T1 ⬆[h,n1] T →
-      â\88\80n2,T2. â¦\83G,Lâ¦\84 â\8a¢ T â¬\86*[h,n2] T2 â\86\92 â¦\83G,Lâ¦\84 ⊢ T1 ⬆*[h,n1+n2] T2.
+      â\88\80n1,T1,T. â\9dªG,Lâ\9d« ⊢ T1 ⬆[h,n1] T →
+      â\88\80n2,T2. â\9dªG,Lâ\9d« â\8a¢ T â¬\86*[h,n2] T2 â\86\92 â\9dªG,Lâ\9d« ⊢ T1 ⬆*[h,n1+n2] T2.
 /2 width=3 by ltc_sn/ qed-.
 
 lemma cpts_step_dx (h) (G) (L):
-      â\88\80n1,T1,T. â¦\83G,Lâ¦\84 ⊢ T1 ⬆*[h,n1] T →
-      â\88\80n2,T2. â¦\83G,Lâ¦\84 â\8a¢ T â¬\86[h,n2] T2 â\86\92 â¦\83G,Lâ¦\84 ⊢ T1 ⬆*[h,n1+n2] T2.
+      â\88\80n1,T1,T. â\9dªG,Lâ\9d« ⊢ T1 ⬆*[h,n1] T →
+      â\88\80n2,T2. â\9dªG,Lâ\9d« â\8a¢ T â¬\86[h,n2] T2 â\86\92 â\9dªG,Lâ\9d« ⊢ T1 ⬆*[h,n1+n2] T2.
 /2 width=3 by ltc_dx/ qed-.
 
 lemma cpts_bind_dx (h) (n) (G) (L):
-      â\88\80V1,V2. â¦\83G,Lâ¦\84 ⊢ V1 ⬆[h,0] V2 →
-      â\88\80I,T1,T2. â¦\83G,L.â\93\91{I}V1â¦\84 ⊢ T1 ⬆*[h,n] T2 →
-      â\88\80p. â¦\83G,Lâ¦\84 â\8a¢ â\93\91{p,I}V1.T1 â¬\86*[h,n] â\93\91{p,I}V2.T2.
+      â\88\80V1,V2. â\9dªG,Lâ\9d« ⊢ V1 ⬆[h,0] V2 →
+      â\88\80I,T1,T2. â\9dªG,L.â\93\91[I]V1â\9d« ⊢ T1 ⬆*[h,n] T2 →
+      â\88\80p. â\9dªG,Lâ\9d« â\8a¢ â\93\91[p,I]V1.T1 â¬\86*[h,n] â\93\91[p,I]V2.T2.
 #h #n #G #L #V1 #V2 #HV12 #I #T1 #T2 #H #a @(cpts_ind_sn … H) -T1
 /3 width=3 by cpts_step_sn, cpt_cpts, cpt_bind/ qed.
 
 lemma cpts_appl_dx (h) (n) (G) (L):
-      â\88\80V1,V2. â¦\83G,Lâ¦\84 ⊢ V1 ⬆[h,0] V2 →
-      â\88\80T1,T2. â¦\83G,Lâ¦\84 â\8a¢ T1 â¬\86*[h,n] T2 â\86\92 â¦\83G,Lâ¦\84 ⊢ ⓐV1.T1 ⬆*[h,n] ⓐV2.T2.
+      â\88\80V1,V2. â\9dªG,Lâ\9d« ⊢ V1 ⬆[h,0] V2 →
+      â\88\80T1,T2. â\9dªG,Lâ\9d« â\8a¢ T1 â¬\86*[h,n] T2 â\86\92 â\9dªG,Lâ\9d« ⊢ ⓐV1.T1 ⬆*[h,n] ⓐV2.T2.
 #h #n #G #L #V1 #V2 #HV12 #T1 #T2 #H @(cpts_ind_sn … H) -T1
 /3 width=3 by cpts_step_sn, cpt_cpts, cpt_appl/
 qed.
 
 lemma cpts_ee (h) (n) (G) (L):
-      â\88\80U1,U2. â¦\83G,Lâ¦\84 ⊢ U1 ⬆*[h,n] U2 →
-      â\88\80T. â¦\83G,Lâ¦\84 ⊢ ⓝU1.T ⬆*[h,↑n] U2.
+      â\88\80U1,U2. â\9dªG,Lâ\9d« ⊢ U1 ⬆*[h,n] U2 →
+      â\88\80T. â\9dªG,Lâ\9d« ⊢ ⓝU1.T ⬆*[h,↑n] U2.
 #h #n #G #L #U1 #U2 #H @(cpts_ind_sn … H) -U1 -n
 [ /3 width=1 by cpt_cpts, cpt_ee/
 | #n1 #n2 #U1 #U #HU1 #HU2 #_ #T >plus_S1
@@ -87,7 +87,7 @@ lemma cpts_refl (h) (G) (L): reflexive … (cpts h G L 0).
 (* Advanced properties ******************************************************)
 
 lemma cpts_sort (h) (G) (L) (n):
-      â\88\80s. â¦\83G,Lâ¦\84 ⊢ ⋆s ⬆*[h,n] ⋆((next h)^n s).
+      â\88\80s. â\9dªG,Lâ\9d« ⊢ ⋆s ⬆*[h,n] ⋆((next h)^n s).
 #h #G #L #n elim n -n [ // ]
 #n #IH #s <plus_SO_dx
 /3 width=3 by cpts_step_dx, cpt_sort/
@@ -96,14 +96,14 @@ qed.
 (* Basic inversion lemmas ***************************************************)
 
 lemma cpts_inv_sort_sn (h) (n) (G) (L) (s):
-      â\88\80X2. â¦\83G,Lâ¦\84 ⊢ ⋆s ⬆*[h,n] X2 → X2 = ⋆(((next h)^n) s).
+      â\88\80X2. â\9dªG,Lâ\9d« ⊢ ⋆s ⬆*[h,n] X2 → X2 = ⋆(((next h)^n) s).
 #h #n #G #L #s #X2 #H @(cpts_ind_dx … H) -X2 //
 #n1 #n2 #X #X2 #_ #IH #HX2 destruct
 elim (cpt_inv_sort_sn … HX2) -HX2 #H #_ destruct //
 qed-.
 
 lemma cpts_inv_lref_sn_ctop (h) (n) (G) (i):
-      â\88\80X2. â¦\83G,â\8b\86â¦\84 ⊢ #i ⬆*[h,n] X2 → ∧∧ X2 = #i & n = 0.
+      â\88\80X2. â\9dªG,â\8b\86â\9d« ⊢ #i ⬆*[h,n] X2 → ∧∧ X2 = #i & n = 0.
 #h #n #G #i #X2 #H @(cpts_ind_dx … H) -X2
 [ /2 width=1 by conj/
 | #n1 #n2 #X #X2 #_ * #HX #Hn1 #HX2 destruct
@@ -113,7 +113,7 @@ lemma cpts_inv_lref_sn_ctop (h) (n) (G) (i):
 qed-.
 
 lemma cpts_inv_zero_sn_unit (h) (n) (I) (K) (G):
-      â\88\80X2. â¦\83G,K.â\93¤{I}â¦\84 ⊢ #0 ⬆*[h,n] X2 → ∧∧ X2 = #0 & n = 0.
+      â\88\80X2. â\9dªG,K.â\93¤[I]â\9d« ⊢ #0 ⬆*[h,n] X2 → ∧∧ X2 = #0 & n = 0.
 #h #n #I #G #K #X2 #H @(cpts_ind_dx … H) -X2
 [ /2 width=1 by conj/
 | #n1 #n2 #X #X2 #_ * #HX #Hn1 #HX2 destruct
@@ -123,7 +123,7 @@ lemma cpts_inv_zero_sn_unit (h) (n) (I) (K) (G):
 qed-.
 
 lemma cpts_inv_gref_sn (h) (n) (G) (L) (l):
-      â\88\80X2. â¦\83G,Lâ¦\84 ⊢ §l ⬆*[h,n] X2 → ∧∧ X2 = §l & n = 0.
+      â\88\80X2. â\9dªG,Lâ\9d« ⊢ §l ⬆*[h,n] X2 → ∧∧ X2 = §l & n = 0.
 #h #n #G #L #l #X2 #H @(cpts_ind_dx … H) -X2
 [ /2 width=1 by conj/
 | #n1 #n2 #X #X2 #_ * #HX #Hn1 #HX2 destruct
@@ -133,9 +133,9 @@ lemma cpts_inv_gref_sn (h) (n) (G) (L) (l):
 qed-.
 
 lemma cpts_inv_cast_sn (h) (n) (G) (L) (U1) (T1):
-      â\88\80X2. â¦\83G,Lâ¦\84 ⊢ ⓝU1.T1 ⬆*[h,n] X2 →
-      â\88¨â\88¨ â\88\83â\88\83U2,T2. â¦\83G,Lâ¦\84 â\8a¢ U1 â¬\86*[h,n] U2 & â¦\83G,Lâ¦\84 ⊢ T1 ⬆*[h,n] T2 & X2 = ⓝU2.T2
-       | â\88\83â\88\83m. â¦\83G,Lâ¦\84 ⊢ U1 ⬆*[h,m] X2 & n = ↑m.
+      â\88\80X2. â\9dªG,Lâ\9d« ⊢ ⓝU1.T1 ⬆*[h,n] X2 →
+      â\88¨â\88¨ â\88\83â\88\83U2,T2. â\9dªG,Lâ\9d« â\8a¢ U1 â¬\86*[h,n] U2 & â\9dªG,Lâ\9d« ⊢ T1 ⬆*[h,n] T2 & X2 = ⓝU2.T2
+       | â\88\83â\88\83m. â\9dªG,Lâ\9d« ⊢ U1 ⬆*[h,m] X2 & n = ↑m.
 #h #n #G #L #U1 #T1 #X2 #H @(cpts_ind_dx … H) -n -X2
 [ /3 width=5 by or_introl, ex3_2_intro/
 | #n1 #n2 #X #X2 #_ * *