(* Properties with generic slicing for local environments *******************)
-lemma fqup_drops_succ: ∀G,K,T,l,L,U. ⬇*[⫯l] L ≡ K → ⬆*[⫯l] T ≡ U →
- ⦃G, L, U⦄ ⊐+ ⦃G, K, T⦄.
-#G #K #T #l elim l -l
+lemma fqup_drops_succ: ∀b,G,K,T,i,L,U. ⬇*[↑i] L ≘ K → ⬆*[↑i] T ≘ U →
+ ⦃G, L, U⦄ ⊐+[b] ⦃G, K, T⦄.
+#b #G #K #T #i elim i -i
[ #L #U #HLK #HTU elim (drops_inv_succ … HLK) -HLK
- #I #Y #V #HY #H destruct <(drops_fwd_isid … HY) -K
- /3 width=1 by fqu_fqup, fqu_drop/
+ #I #Y #HY #H destruct <(drops_fwd_isid … HY) -K //
+ /3 width=2 by fqu_fqup, fqu_drop/
| #l #IH #L #U #HLK #HTU elim (drops_inv_succ … HLK) -HLK
- #I #Y #V #HY #H destruct
- elim (lifts_split_trans â\80¦ HTU â\80¦ (ð\9d\90\94â\9d´â«¯l❵) (𝐔❴1❵)) -HTU
+ #I #Y #HY #H destruct
+ elim (lifts_split_trans â\80¦ HTU â\80¦ (ð\9d\90\94â\9d´â\86\91l❵) (𝐔❴1❵)) -HTU
/4 width=5 by fqup_strap2, fqu_drop/
]
qed.
-lemma fqup_drops_strap1: ∀G1,G2,L1,K1,K2,T1,T2,U1,l. ⬇*[l] L1 ≡ K1 → ⬆*[l] T1 ≡ U1 →
- ⦃G1, K1, T1⦄ ⊐ ⦃G2, K2, T2⦄ → ⦃G1, L1, U1⦄ ⊐+ ⦃G2, K2, T2⦄.
-#G1 #G2 #L1 #K1 #K2 #T1 #T2 #U1 *
+lemma fqup_drops_strap1: ∀b,G1,G2,L1,K1,K2,T1,T2,U1,i. ⬇*[i] L1 ≘ K1 → ⬆*[i] T1 ≘ U1 →
+ ⦃G1, K1, T1⦄ ⊐[b] ⦃G2, K2, T2⦄ → ⦃G1, L1, U1⦄ ⊐+[b] ⦃G2, K2, T2⦄.
+#b #G1 #G2 #L1 #K1 #K2 #T1 #T2 #U1 *
[ #HLK1 #HTU1 #HT12
>(drops_fwd_isid … HLK1) -L1 //
<(lifts_fwd_isid … HTU1) -U1 /2 width=1 by fqu_fqup/
]
qed-.
-lemma fqup_lref: ∀I,G,L,K,V,i. ⬇*[i] L ≡ K.ⓑ{I}V → ⦃G, L, #i⦄ ⊐+ ⦃G, K, V⦄.
-/2 width=6 by fqup_drops_strap1/ qed.
+lemma fqup_lref: ∀b,I,G,L,K,V,i. ⬇*[i] L ≘ K.ⓑ{I}V → ⦃G, L, #i⦄ ⊐+[b] ⦃G, K, V⦄.
+/2 width=6 by fqup_drops_strap1/ qed.