]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/basic_2/relocation/lifts.ma
- ground_2: support for lifts_div4
[helm.git] / matita / matita / contribs / lambdadelta / basic_2 / relocation / lifts.ma
index ceaca58a944a6c4884fd476b000b8f2315bebcd2..495d5e45fa9cbddac708ae4aa0f836db860e484d 100644 (file)
@@ -208,6 +208,8 @@ lemma lifts_inv_flat2: ∀f:rtmap. ∀I,V2,T2,X. ⬆*[f] X ≡ ⓕ{I}V2.T2 →
                                 X = ⓕ{I}V1.T1.
 /2 width=3 by lifts_inv_flat2_aux/ qed-.
 
+(* Advanced inversion lemmas ************************************************)
+
 (* Basic_2A1: includes: lift_inv_pair_xy_x *)
 lemma lifts_inv_pair_xy_x: ∀f,I,V,T. ⬆*[f] ②{I}V.T ≡ V → ⊥.
 #f #J #V elim V -V
@@ -241,6 +243,10 @@ lemma lifts_inv_pair_xy_y: ∀I,T,V,f. ⬆*[f] ②{I}V.T ≡ T → ⊥.
 ]
 qed-.
 
+lemma lifts_inv_lref1_uni: ∀l,Y,i. ⬆*[l] #i ≡ Y → Y = #(l+i).
+#l #Y #i1 #H elim (lifts_inv_lref1 … H) -H /4 width=4 by at_mono, eq_f/
+qed-.
+
 (* Basic forward lemmas *****************************************************)
 
 (* Basic_2A1: includes: lift_inv_O2 *)
@@ -371,6 +377,11 @@ lemma is_lifts_dec: ∀T2,f. Decidable (∃T1. ⬆*[f] T1 ≡ T2).
 ]
 qed-.
 
+(* Properties with uniform relocation ***************************************)
+
+lemma lifts_uni: ∀n1,n2,T,U. ⬆*[𝐔❴n1❵∘𝐔❴n2❵] T ≡ U → ⬆*[n1+n2] T ≡ U.
+/3 width=4 by lifts_eq_repl_back, after_inv_total/ qed.
+
 (* Basic_2A1: removed theorems 14:
               lifts_inv_nil lifts_inv_cons
               lift_inv_Y1 lift_inv_Y2 lift_inv_lref_Y1 lift_inv_lref_Y2 lift_lref_Y lift_Y1