]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambda_delta/Basic_2/substitution/lift.ma
- more properties on strongly normalizing terms
[helm.git] / matita / matita / contribs / lambda_delta / Basic_2 / substitution / lift.ma
index 30296c685d2a9751b7b5971ee17aa58bbbc1cbfc..cb8aac3a00ccd2c676a4fba4eccf6009ed572513 100644 (file)
@@ -13,8 +13,9 @@
 (**************************************************************************)
 
 include "Basic_2/grammar/term_weight.ma".
+include "Basic_2/grammar/term_simple.ma".
 
-(* RELOCATION ***************************************************************)
+(* BASIC TERM RELOCATION ****************************************************)
 
 (* Basic_1: includes:
             lift_sort lift_lref_lt lift_lref_ge lift_bind lift_flat
@@ -26,24 +27,24 @@ inductive lift: nat → nat → relation term ≝
 | lift_gref   : ∀p,d,e. lift d e (§p) (§p)
 | lift_bind   : ∀I,V1,V2,T1,T2,d,e.
                 lift d e V1 V2 → lift (d + 1) e T1 T2 →
-                lift d e (𝕓{I} V1. T1) (𝕓{I} V2. T2)
+                lift d e (ⓑ{I} V1. T1) (ⓑ{I} V2. T2)
 | lift_flat   : ∀I,V1,V2,T1,T2,d,e.
                 lift d e V1 V2 → lift d e T1 T2 →
-                lift d e (𝕗{I} V1. T1) (𝕗{I} V2. T2)
+                lift d e (ⓕ{I} V1. T1) (ⓕ{I} V2. T2)
 .
 
 interpretation "relocation" 'RLift d e T1 T2 = (lift d e T1 T2).
 
 (* Basic inversion lemmas ***************************************************)
 
-fact lift_inv_refl_aux: ∀d,e,T1,T2. ↑[d, e] T1 ≡ T2 → e = 0 → T1 = T2.
+fact lift_inv_refl_O2_aux: ∀d,e,T1,T2. ⇧[d, e] T1 ≡ T2 → e = 0 → T1 = T2.
 #d #e #T1 #T2 #H elim H -d -e -T1 -T2 // /3 width=1/
 qed.
 
-lemma lift_inv_refl: ∀d,T1,T2. ↑[d, 0] T1 ≡ T2 → T1 = T2.
+lemma lift_inv_refl_O2: ∀d,T1,T2. ⇧[d, 0] T1 ≡ T2 → T1 = T2.
 /2 width=4/ qed-.
 
-fact lift_inv_sort1_aux: â\88\80d,e,T1,T2. â\86\91[d,e] T1 ≡ T2 → ∀k. T1 = ⋆k → T2 = ⋆k.
+fact lift_inv_sort1_aux: â\88\80d,e,T1,T2. â\87§[d,e] T1 ≡ T2 → ∀k. T1 = ⋆k → T2 = ⋆k.
 #d #e #T1 #T2 * -d -e -T1 -T2 //
 [ #i #d #e #_ #k #H destruct
 | #I #V1 #V2 #T1 #T2 #d #e #_ #_ #k #H destruct
@@ -51,10 +52,10 @@ fact lift_inv_sort1_aux: ∀d,e,T1,T2. ↑[d,e] T1 ≡ T2 → ∀k. T1 = ⋆k 
 ]
 qed.
 
-lemma lift_inv_sort1: â\88\80d,e,T2,k. â\86\91[d,e] ⋆k ≡ T2 → T2 = ⋆k.
+lemma lift_inv_sort1: â\88\80d,e,T2,k. â\87§[d,e] ⋆k ≡ T2 → T2 = ⋆k.
 /2 width=5/ qed-.
 
-fact lift_inv_lref1_aux: â\88\80d,e,T1,T2. â\86\91[d,e] T1 ≡ T2 → ∀i. T1 = #i →
+fact lift_inv_lref1_aux: â\88\80d,e,T1,T2. â\87§[d,e] T1 ≡ T2 → ∀i. T1 = #i →
                          (i < d ∧ T2 = #i) ∨ (d ≤ i ∧ T2 = #(i + e)).
 #d #e #T1 #T2 * -d -e -T1 -T2
 [ #k #d #e #i #H destruct
@@ -66,23 +67,23 @@ fact lift_inv_lref1_aux: ∀d,e,T1,T2. ↑[d,e] T1 ≡ T2 → ∀i. T1 = #i →
 ]
 qed.
 
-lemma lift_inv_lref1: â\88\80d,e,T2,i. â\86\91[d,e] #i ≡ T2 →
+lemma lift_inv_lref1: â\88\80d,e,T2,i. â\87§[d,e] #i ≡ T2 →
                       (i < d ∧ T2 = #i) ∨ (d ≤ i ∧ T2 = #(i + e)).
 /2 width=3/ qed-.
 
-lemma lift_inv_lref1_lt: â\88\80d,e,T2,i. â\86\91[d,e] #i ≡ T2 → i < d → T2 = #i.
+lemma lift_inv_lref1_lt: â\88\80d,e,T2,i. â\87§[d,e] #i ≡ T2 → i < d → T2 = #i.
 #d #e #T2 #i #H elim (lift_inv_lref1 … H) -H * //
 #Hdi #_ #Hid lapply (le_to_lt_to_lt … Hdi Hid) -Hdi -Hid #Hdd
 elim (lt_refl_false … Hdd)
 qed-.
 
-lemma lift_inv_lref1_ge: â\88\80d,e,T2,i. â\86\91[d,e] #i ≡ T2 → d ≤ i → T2 = #(i + e).
+lemma lift_inv_lref1_ge: â\88\80d,e,T2,i. â\87§[d,e] #i ≡ T2 → d ≤ i → T2 = #(i + e).
 #d #e #T2 #i #H elim (lift_inv_lref1 … H) -H * //
 #Hid #_ #Hdi lapply (le_to_lt_to_lt … Hdi Hid) -Hdi -Hid #Hdd
 elim (lt_refl_false … Hdd)
 qed-.
 
-fact lift_inv_gref1_aux: â\88\80d,e,T1,T2. â\86\91[d,e] T1 ≡ T2 → ∀p. T1 = §p → T2 = §p.
+fact lift_inv_gref1_aux: â\88\80d,e,T1,T2. â\87§[d,e] T1 ≡ T2 → ∀p. T1 = §p → T2 = §p.
 #d #e #T1 #T2 * -d -e -T1 -T2 //
 [ #i #d #e #_ #k #H destruct
 | #I #V1 #V2 #T1 #T2 #d #e #_ #_ #k #H destruct
@@ -90,13 +91,13 @@ fact lift_inv_gref1_aux: ∀d,e,T1,T2. ↑[d,e] T1 ≡ T2 → ∀p. T1 = §p →
 ]
 qed.
 
-lemma lift_inv_gref1: â\88\80d,e,T2,p. â\86\91[d,e] §p ≡ T2 → T2 = §p.
+lemma lift_inv_gref1: â\88\80d,e,T2,p. â\87§[d,e] §p ≡ T2 → T2 = §p.
 /2 width=5/ qed-.
 
-fact lift_inv_bind1_aux: â\88\80d,e,T1,T2. â\86\91[d,e] T1 ≡ T2 →
-                         ∀I,V1,U1. T1 = 𝕓{I} V1.U1 →
-                         â\88\83â\88\83V2,U2. â\86\91[d,e] V1 â\89¡ V2 & â\86\91[d+1,e] U1 ≡ U2 &
-                                  T2 = 𝕓{I} V2. U2.
+fact lift_inv_bind1_aux: â\88\80d,e,T1,T2. â\87§[d,e] T1 ≡ T2 →
+                         ∀I,V1,U1. T1 = {I} V1.U1 →
+                         â\88\83â\88\83V2,U2. â\87§[d,e] V1 â\89¡ V2 & â\87§[d+1,e] U1 ≡ U2 &
+                                  T2 = {I} V2. U2.
 #d #e #T1 #T2 * -d -e -T1 -T2
 [ #k #d #e #I #V1 #U1 #H destruct
 | #i #d #e #_ #I #V1 #U1 #H destruct
@@ -107,15 +108,15 @@ fact lift_inv_bind1_aux: ∀d,e,T1,T2. ↑[d,e] T1 ≡ T2 →
 ]
 qed.
 
-lemma lift_inv_bind1: â\88\80d,e,T2,I,V1,U1. â\86\91[d,e] ð\9d\95\93{I} V1. U1 ≡ T2 →
-                      â\88\83â\88\83V2,U2. â\86\91[d,e] V1 â\89¡ V2 & â\86\91[d+1,e] U1 ≡ U2 &
-                               T2 = 𝕓{I} V2. U2.
+lemma lift_inv_bind1: â\88\80d,e,T2,I,V1,U1. â\87§[d,e] â\93\91{I} V1. U1 ≡ T2 →
+                      â\88\83â\88\83V2,U2. â\87§[d,e] V1 â\89¡ V2 & â\87§[d+1,e] U1 ≡ U2 &
+                               T2 = {I} V2. U2.
 /2 width=3/ qed-.
 
-fact lift_inv_flat1_aux: â\88\80d,e,T1,T2. â\86\91[d,e] T1 ≡ T2 →
-                         ∀I,V1,U1. T1 = 𝕗{I} V1.U1 →
-                         â\88\83â\88\83V2,U2. â\86\91[d,e] V1 â\89¡ V2 & â\86\91[d,e] U1 ≡ U2 &
-                                  T2 = 𝕗{I} V2. U2.
+fact lift_inv_flat1_aux: â\88\80d,e,T1,T2. â\87§[d,e] T1 ≡ T2 →
+                         ∀I,V1,U1. T1 = {I} V1.U1 →
+                         â\88\83â\88\83V2,U2. â\87§[d,e] V1 â\89¡ V2 & â\87§[d,e] U1 ≡ U2 &
+                                  T2 = {I} V2. U2.
 #d #e #T1 #T2 * -d -e -T1 -T2
 [ #k #d #e #I #V1 #U1 #H destruct
 | #i #d #e #_ #I #V1 #U1 #H destruct
@@ -126,12 +127,12 @@ fact lift_inv_flat1_aux: ∀d,e,T1,T2. ↑[d,e] T1 ≡ T2 →
 ]
 qed.
 
-lemma lift_inv_flat1: â\88\80d,e,T2,I,V1,U1. â\86\91[d,e] ð\9d\95\97{I} V1. U1 ≡ T2 →
-                      â\88\83â\88\83V2,U2. â\86\91[d,e] V1 â\89¡ V2 & â\86\91[d,e] U1 ≡ U2 &
-                               T2 = 𝕗{I} V2. U2.
+lemma lift_inv_flat1: â\88\80d,e,T2,I,V1,U1. â\87§[d,e] â\93\95{I} V1. U1 ≡ T2 →
+                      â\88\83â\88\83V2,U2. â\87§[d,e] V1 â\89¡ V2 & â\87§[d,e] U1 ≡ U2 &
+                               T2 = {I} V2. U2.
 /2 width=3/ qed-.
 
-fact lift_inv_sort2_aux: â\88\80d,e,T1,T2. â\86\91[d,e] T1 ≡ T2 → ∀k. T2 = ⋆k → T1 = ⋆k.
+fact lift_inv_sort2_aux: â\88\80d,e,T1,T2. â\87§[d,e] T1 ≡ T2 → ∀k. T2 = ⋆k → T1 = ⋆k.
 #d #e #T1 #T2 * -d -e -T1 -T2 //
 [ #i #d #e #_ #k #H destruct
 | #I #V1 #V2 #T1 #T2 #d #e #_ #_ #k #H destruct
@@ -140,10 +141,10 @@ fact lift_inv_sort2_aux: ∀d,e,T1,T2. ↑[d,e] T1 ≡ T2 → ∀k. T2 = ⋆k 
 qed.
 
 (* Basic_1: was: lift_gen_sort *)
-lemma lift_inv_sort2: â\88\80d,e,T1,k. â\86\91[d,e] T1 ≡ ⋆k → T1 = ⋆k.
+lemma lift_inv_sort2: â\88\80d,e,T1,k. â\87§[d,e] T1 ≡ ⋆k → T1 = ⋆k.
 /2 width=5/ qed-.
 
-fact lift_inv_lref2_aux: â\88\80d,e,T1,T2. â\86\91[d,e] T1 ≡ T2 → ∀i. T2 = #i →
+fact lift_inv_lref2_aux: â\88\80d,e,T1,T2. â\87§[d,e] T1 ≡ T2 → ∀i. T2 = #i →
                          (i < d ∧ T1 = #i) ∨ (d + e ≤ i ∧ T1 = #(i - e)).
 #d #e #T1 #T2 * -d -e -T1 -T2
 [ #k #d #e #i #H destruct
@@ -156,19 +157,20 @@ fact lift_inv_lref2_aux: ∀d,e,T1,T2. ↑[d,e] T1 ≡ T2 → ∀i. T2 = #i →
 qed.
 
 (* Basic_1: was: lift_gen_lref *)
-lemma lift_inv_lref2: â\88\80d,e,T1,i. â\86\91[d,e] T1 ≡ #i →
+lemma lift_inv_lref2: â\88\80d,e,T1,i. â\87§[d,e] T1 ≡ #i →
                       (i < d ∧ T1 = #i) ∨ (d + e ≤ i ∧ T1 = #(i - e)).
 /2 width=3/ qed-.
 
 (* Basic_1: was: lift_gen_lref_lt *)
-lemma lift_inv_lref2_lt: â\88\80d,e,T1,i. â\86\91[d,e] T1 ≡ #i → i < d → T1 = #i.
+lemma lift_inv_lref2_lt: â\88\80d,e,T1,i. â\87§[d,e] T1 ≡ #i → i < d → T1 = #i.
 #d #e #T1 #i #H elim (lift_inv_lref2 … H) -H * //
 #Hdi #_ #Hid lapply (le_to_lt_to_lt … Hdi Hid) -Hdi -Hid #Hdd
-elim (plus_lt_false … Hdd)
+elim (lt_inv_plus_l … Hdd) -Hdd #Hdd
+elim (lt_refl_false … Hdd)
 qed-.
 
 (* Basic_1: was: lift_gen_lref_false *)
-lemma lift_inv_lref2_be: â\88\80d,e,T1,i. â\86\91[d,e] T1 ≡ #i →
+lemma lift_inv_lref2_be: â\88\80d,e,T1,i. â\87§[d,e] T1 ≡ #i →
                          d ≤ i → i < d + e → False.
 #d #e #T1 #i #H elim (lift_inv_lref2 … H) -H *
 [ #H1 #_ #H2 #_ | #H2 #_ #_ #H1 ]
@@ -177,13 +179,14 @@ elim (lt_refl_false … H)
 qed-.
 
 (* Basic_1: was: lift_gen_lref_ge *)
-lemma lift_inv_lref2_ge: â\88\80d,e,T1,i. â\86\91[d,e] T1 ≡ #i → d + e ≤ i → T1 = #(i - e).
+lemma lift_inv_lref2_ge: â\88\80d,e,T1,i. â\87§[d,e] T1 ≡ #i → d + e ≤ i → T1 = #(i - e).
 #d #e #T1 #i #H elim (lift_inv_lref2 … H) -H * //
 #Hid #_ #Hdi lapply (le_to_lt_to_lt … Hdi Hid) -Hdi -Hid #Hdd
-elim (plus_lt_false … Hdd)
+elim (lt_inv_plus_l … Hdd) -Hdd #Hdd
+elim (lt_refl_false … Hdd)
 qed-.
 
-fact lift_inv_gref2_aux: â\88\80d,e,T1,T2. â\86\91[d,e] T1 ≡ T2 → ∀p. T2 = §p → T1 = §p.
+fact lift_inv_gref2_aux: â\88\80d,e,T1,T2. â\87§[d,e] T1 ≡ T2 → ∀p. T2 = §p → T1 = §p.
 #d #e #T1 #T2 * -d -e -T1 -T2 //
 [ #i #d #e #_ #k #H destruct
 | #I #V1 #V2 #T1 #T2 #d #e #_ #_ #k #H destruct
@@ -191,13 +194,13 @@ fact lift_inv_gref2_aux: ∀d,e,T1,T2. ↑[d,e] T1 ≡ T2 → ∀p. T2 = §p →
 ]
 qed.
 
-lemma lift_inv_gref2: â\88\80d,e,T1,p. â\86\91[d,e] T1 ≡ §p → T1 = §p.
+lemma lift_inv_gref2: â\88\80d,e,T1,p. â\87§[d,e] T1 ≡ §p → T1 = §p.
 /2 width=5/ qed-.
 
-fact lift_inv_bind2_aux: â\88\80d,e,T1,T2. â\86\91[d,e] T1 ≡ T2 →
-                         ∀I,V2,U2. T2 = 𝕓{I} V2.U2 →
-                         â\88\83â\88\83V1,U1. â\86\91[d,e] V1 â\89¡ V2 & â\86\91[d+1,e] U1 ≡ U2 &
-                                  T1 = 𝕓{I} V1. U1.
+fact lift_inv_bind2_aux: â\88\80d,e,T1,T2. â\87§[d,e] T1 ≡ T2 →
+                         ∀I,V2,U2. T2 = {I} V2.U2 →
+                         â\88\83â\88\83V1,U1. â\87§[d,e] V1 â\89¡ V2 & â\87§[d+1,e] U1 ≡ U2 &
+                                  T1 = {I} V1. U1.
 #d #e #T1 #T2 * -d -e -T1 -T2
 [ #k #d #e #I #V2 #U2 #H destruct
 | #i #d #e #_ #I #V2 #U2 #H destruct
@@ -209,15 +212,15 @@ fact lift_inv_bind2_aux: ∀d,e,T1,T2. ↑[d,e] T1 ≡ T2 →
 qed.
 
 (* Basic_1: was: lift_gen_bind *)
-lemma lift_inv_bind2: â\88\80d,e,T1,I,V2,U2. â\86\91[d,e] T1 â\89¡  ð\9d\95\93{I} V2. U2 →
-                      â\88\83â\88\83V1,U1. â\86\91[d,e] V1 â\89¡ V2 & â\86\91[d+1,e] U1 ≡ U2 &
-                               T1 = 𝕓{I} V1. U1.
+lemma lift_inv_bind2: â\88\80d,e,T1,I,V2,U2. â\87§[d,e] T1 â\89¡  â\93\91{I} V2. U2 →
+                      â\88\83â\88\83V1,U1. â\87§[d,e] V1 â\89¡ V2 & â\87§[d+1,e] U1 ≡ U2 &
+                               T1 = {I} V1. U1.
 /2 width=3/ qed-.
 
-fact lift_inv_flat2_aux: â\88\80d,e,T1,T2. â\86\91[d,e] T1 ≡ T2 →
-                         ∀I,V2,U2. T2 = 𝕗{I} V2.U2 →
-                         â\88\83â\88\83V1,U1. â\86\91[d,e] V1 â\89¡ V2 & â\86\91[d,e] U1 ≡ U2 &
-                                  T1 = 𝕗{I} V1. U1.
+fact lift_inv_flat2_aux: â\88\80d,e,T1,T2. â\87§[d,e] T1 ≡ T2 →
+                         ∀I,V2,U2. T2 = {I} V2.U2 →
+                         â\88\83â\88\83V1,U1. â\87§[d,e] V1 â\89¡ V2 & â\87§[d,e] U1 ≡ U2 &
+                                  T1 = {I} V1. U1.
 #d #e #T1 #T2 * -d -e -T1 -T2
 [ #k #d #e #I #V2 #U2 #H destruct
 | #i #d #e #_ #I #V2 #U2 #H destruct
@@ -229,12 +232,12 @@ fact lift_inv_flat2_aux: ∀d,e,T1,T2. ↑[d,e] T1 ≡ T2 →
 qed.
 
 (* Basic_1: was: lift_gen_flat *)
-lemma lift_inv_flat2: â\88\80d,e,T1,I,V2,U2. â\86\91[d,e] T1 â\89¡  ð\9d\95\97{I} V2. U2 →
-                      â\88\83â\88\83V1,U1. â\86\91[d,e] V1 â\89¡ V2 & â\86\91[d,e] U1 ≡ U2 &
-                               T1 = 𝕗{I} V1. U1.
+lemma lift_inv_flat2: â\88\80d,e,T1,I,V2,U2. â\87§[d,e] T1 â\89¡  â\93\95{I} V2. U2 →
+                      â\88\83â\88\83V1,U1. â\87§[d,e] V1 â\89¡ V2 & â\87§[d,e] U1 ≡ U2 &
+                               T1 = {I} V1. U1.
 /2 width=3/ qed-.
 
-lemma lift_inv_pair_xy_x: â\88\80d,e,I,V,T. â\86\91[d, e] ð\9d\95\94{I} V. T ≡ V → False.
+lemma lift_inv_pair_xy_x: â\88\80d,e,I,V,T. â\87§[d, e] â\91¡{I} V. T ≡ V → False.
 #d #e #J #V elim V -V
 [ * #i #T #H
   [ lapply (lift_inv_sort2 … H) -H #H destruct
@@ -248,7 +251,7 @@ lemma lift_inv_pair_xy_x: ∀d,e,I,V,T. ↑[d, e] 𝕔{I} V. T ≡ V → False.
 ]
 qed-.
 
-lemma lift_inv_pair_xy_y: â\88\80I,T,V,d,e. â\86\91[d, e] ð\9d\95\94{I} V. T ≡ T → False.
+lemma lift_inv_pair_xy_y: â\88\80I,T,V,d,e. â\87§[d, e] â\91¡{I} V. T ≡ T → False.
 #J #T elim T -T
 [ * #i #V #d #e #H
   [ lapply (lift_inv_sort2 … H) -H #H destruct
@@ -264,26 +267,41 @@ qed-.
 
 (* Basic forward lemmas *****************************************************)
 
-lemma tw_lift: â\88\80d,e,T1,T2. â\86\91[d, e] T1 ≡ T2 → #[T1] = #[T2].
+lemma tw_lift: â\88\80d,e,T1,T2. â\87§[d, e] T1 ≡ T2 → #[T1] = #[T2].
 #d #e #T1 #T2 #H elim H -d -e -T1 -T2 normalize //
 qed-.
 
+lemma lift_simple_dx: ∀d,e,T1,T2. ⇧[d, e] T1 ≡ T2 → 𝐒[T1] → 𝐒[T2].
+#d #e #T1 #T2 #H elim H -d -e -T1 -T2 //
+#I #V1 #V2 #T1 #T2 #d #e #_ #_ #_ #_ #H
+elim (simple_inv_bind … H)
+qed-.
+
+lemma lift_simple_sn: ∀d,e,T1,T2. ⇧[d, e] T1 ≡ T2 → 𝐒[T2] → 𝐒[T1].
+#d #e #T1 #T2 #H elim H -d -e -T1 -T2 //
+#I #V1 #V2 #T1 #T2 #d #e #_ #_ #_ #_ #H
+elim (simple_inv_bind … H)
+qed-. 
+
 (* Basic properties *********************************************************)
 
 (* Basic_1: was: lift_lref_gt *)
-lemma lift_lref_ge_minus: â\88\80d,e,i. d + e â\89¤ i â\86\92 â\86\91[d, e] #(i - e) ≡ #i.
+lemma lift_lref_ge_minus: â\88\80d,e,i. d + e â\89¤ i â\86\92 â\87§[d, e] #(i - e) ≡ #i.
 #d #e #i #H >(plus_minus_m_m i e) in ⊢ (? ? ? ? %); /2 width=2/ /3 width=2/
 qed.
 
+lemma lift_lref_ge_minus_eq: ∀d,e,i,j. d + e ≤ i → j = i - e → ⇧[d, e] #j ≡ #i.
+/2 width=1/ qed-.
+
 (* Basic_1: was: lift_r *)
-lemma lift_refl: â\88\80T,d. â\86\91[d, 0] T ≡ T.
+lemma lift_refl: â\88\80T,d. â\87§[d, 0] T ≡ T.
 #T elim T -T
 [ * #i // #d elim (lt_or_ge i d) /2 width=1/
 | * /2 width=1/
 ]
 qed.
 
-lemma lift_total: â\88\80T1,d,e. â\88\83T2. â\86\91[d,e] T1 ≡ T2.
+lemma lift_total: â\88\80T1,d,e. â\88\83T2. â\87§[d,e] T1 ≡ T2.
 #T1 elim T1 -T1
 [ * #i /2 width=2/ #d #e elim (lt_or_ge i d) /3 width=2/
 | * #I #V1 #T1 #IHV1 #IHT1 #d #e
@@ -295,9 +313,9 @@ lemma lift_total: ∀T1,d,e. ∃T2. ↑[d,e] T1 ≡ T2.
 qed.
 
 (* Basic_1: was: lift_free (right to left) *)
-lemma lift_split: â\88\80d1,e2,T1,T2. â\86\91[d1, e2] T1 ≡ T2 →
+lemma lift_split: â\88\80d1,e2,T1,T2. â\87§[d1, e2] T1 ≡ T2 →
                   ∀d2,e1. d1 ≤ d2 → d2 ≤ d1 + e1 → e1 ≤ e2 →
-                  â\88\83â\88\83T. â\86\91[d1, e1] T1 â\89¡ T & â\86\91[d2, e2 - e1] T ≡ T2.
+                  â\88\83â\88\83T. â\87§[d1, e1] T1 â\89¡ T & â\87§[d2, e2 - e1] T ≡ T2.
 #d1 #e2 #T1 #T2 #H elim H -d1 -e2 -T1 -T2
 [ /3 width=3/
 | #i #d1 #e2 #Hid1 #d2 #e1 #Hd12 #_ #_
@@ -316,7 +334,7 @@ lemma lift_split: ∀d1,e2,T1,T2. ↑[d1, e2] T1 ≡ T2 →
 qed.
 
 (* Basic_1: was only: dnf_dec2 dnf_dec *)
-lemma is_lift_dec: â\88\80T2,d,e. Decidable (â\88\83T1. â\86\91[d,e] T1 ≡ T2).
+lemma is_lift_dec: â\88\80T2,d,e. Decidable (â\88\83T1. â\87§[d,e] T1 ≡ T2).
 #T1 elim T1 -T1
 [ * [1,3: /3 width=2/ ] #i #d #e
   elim (lt_dec i d) #Hid