include "basic_2/relocation/lifts_vector.ma".
include "basic_2/relocation/drops.ma".
-(* GENERAL SLICING FOR LOCAL ENVIRONMENTS ***********************************)
+(* GENERIC SLICING FOR LOCAL ENVIRONMENTS ***********************************)
-definition d_liftable1_all: relation2 lenv term → predicate bool ≝
- λR,s. ∀L,K,t. ⬇*[s, t] L ≡ K →
- ∀Ts,Us. ⬆*[t] Ts ≡ Us →
- all … (R K) Ts → all … (R L) Us.
+definition d_liftable1_all: predicate (relation2 lenv term) ≝
+ λR. ∀K,Ts. all … (R K) Ts →
+ ∀b,f,L. ⬇*[b, f] L ≘ K →
+ ∀Us. ⬆*[f] Ts ≘ Us → all … (R L) Us.
-(* Properties on general relocation for term vectors ************************)
+(* Properties with generic relocation for term vectors **********************)
(* Basic_2A1: was: d1_liftables_liftables_all *)
-lemma d1_liftable_liftable_all: ∀R,s. d_liftable1 R s → d_liftable1_all R s.
-#R #s #HR #L #K #t #HLK #Ts #Us #H elim H -Ts -Us normalize //
+lemma d1_liftable_liftable_all: ∀R. d_liftable1 R → d_liftable1_all R.
+#R #HR #K #Ts #HTs #b #f #L #HLK #Us #H
+generalize in match HTs; -HTs elim H -Ts -Us normalize //
#Ts #Us #T #U #HTU #_ #IHTUs * /3 width=7 by conj/
qed.