]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/static_2/relocation/lifts.ma
λδ-2B is released
[helm.git] / matita / matita / contribs / lambdadelta / static_2 / relocation / lifts.ma
index b888af22d7fa684c8226547d410179a0627c3356..9116951c311d6da1f41ca06af4caad072b44c51b 100644 (file)
@@ -41,7 +41,7 @@ interpretation "generic relocation (term)"
    'RLiftStar f T1 T2 = (lifts f T1 T2).
 
 definition liftable2_sn: predicate (relation term) ≝
-                         λR. ∀T1,T2. R T1 T2 → ∀f,U1. ⇧*[f] T1 ≘ U1 → 
+                         λR. ∀T1,T2. R T1 T2 → ∀f,U1. ⇧*[f] T1 ≘ U1 →
                          ∃∃U2. ⇧*[f] T2 ≘ U2 & R U1 U2.
 
 definition deliftable2_sn: predicate (relation term) ≝
@@ -49,7 +49,7 @@ definition deliftable2_sn: predicate (relation term) ≝
                            ∃∃T2. ⇧*[f] T2 ≘ U2 & R T1 T2.
 
 definition liftable2_bi: predicate (relation term) ≝
-                         λR. ∀T1,T2. R T1 T2 → ∀f,U1. ⇧*[f] T1 ≘ U1 → 
+                         λR. ∀T1,T2. R T1 T2 → ∀f,U1. ⇧*[f] T1 ≘ U1 →
                          ∀U2. ⇧*[f] T2 ≘ U2 → R U1 U2.
 
 definition deliftable2_bi: predicate (relation term) ≝
@@ -287,6 +287,22 @@ lemma lifts_inv_pair_xy_y: ∀I,T,V,f. ⇧*[f] ②{I}V.T ≘ T → ⊥.
 ]
 qed-.
 
+lemma lifts_inv_push_zero_sn (f):
+      ∀X. ⇧*[⫯f]#0 ≘ X → #0 = X.
+#f #X #H
+elim (lifts_inv_lref1 … H) -H #i #Hi #H destruct
+lapply (at_inv_ppx … Hi ???) -Hi //
+qed-.
+
+lemma lifts_inv_push_succ_sn (f) (i1):
+      ∀X. ⇧*[⫯f]#(↑i1) ≘ X →
+      ∃∃i2. ⇧*[f]#i1 ≘ #i2 & #(↑i2) = X.
+#f #i1 #X #H
+elim (lifts_inv_lref1 … H) -H #j #Hij #H destruct
+elim (at_inv_npx … Hij) -Hij [|*: // ] #i2 #Hi12 #H destruct
+/3 width=3 by lifts_lref, ex2_intro/
+qed-.
+
 (* Inversion lemmas with uniform relocations ********************************)
 
 lemma lifts_inv_lref1_uni: ∀l,Y,i. ⇧*[l] #i ≘ Y → Y = #(l+i).
@@ -470,8 +486,8 @@ lemma lifts_uni: ∀n1,n2,T,U. ⇧*[𝐔❴n1❵∘𝐔❴n2❵] T ≘ U → ⇧
               lift_lref_ge_minus lift_lref_ge_minus_eq
 *)
 (* Basic_1: removed theorems 8:
-            lift_lref_gt            
-            lift_head lift_gen_head 
+            lift_lref_gt
+            lift_head lift_gen_head
             lift_weight_map lift_weight lift_weight_add lift_weight_add_O
             lift_tlt_dx
 *)