(* Basic_1: was: subst1_lift_lt *)
lemma cpy_lift_le: ∀G,K,T1,T2,dt,et. ⦃G, K⦄ ⊢ T1 ▶[dt, et] T2 →
- â\88\80L,U1,U2,s,d,e. â\87©[s, d, e] L ≡ K →
- â\87§[d, e] T1 â\89¡ U1 â\86\92 â\87§[d, e] T2 ≡ U2 →
+ â\88\80L,U1,U2,s,d,e. â¬\87[s, d, e] L ≡ K →
+ â¬\86[d, e] T1 â\89¡ U1 â\86\92 â¬\86[d, e] T2 ≡ U2 →
dt + et ≤ d → ⦃G, L⦄ ⊢ U1 ▶[dt, et] U2.
#G #K #T1 #T2 #dt #et #H elim H -G -K -T1 -T2 -dt -et
[ #I #G #K #dt #et #L #U1 #U2 #s #d #e #_ #H1 #H2 #_
qed-.
lemma cpy_lift_be: ∀G,K,T1,T2,dt,et. ⦃G, K⦄ ⊢ T1 ▶[dt, et] T2 →
- â\88\80L,U1,U2,s,d,e. â\87©[s, d, e] L ≡ K →
- â\87§[d, e] T1 â\89¡ U1 â\86\92 â\87§[d, e] T2 ≡ U2 →
+ â\88\80L,U1,U2,s,d,e. â¬\87[s, d, e] L ≡ K →
+ â¬\86[d, e] T1 â\89¡ U1 â\86\92 â¬\86[d, e] T2 ≡ U2 →
dt ≤ d → d ≤ dt + et → ⦃G, L⦄ ⊢ U1 ▶[dt, et + e] U2.
#G #K #T1 #T2 #dt #et #H elim H -G -K -T1 -T2 -dt -et
[ #I #G #K #dt #et #L #U1 #U2 #s #d #e #_ #H1 #H2 #_ #_
(* Basic_1: was: subst1_lift_ge *)
lemma cpy_lift_ge: ∀G,K,T1,T2,dt,et. ⦃G, K⦄ ⊢ T1 ▶[dt, et] T2 →
- â\88\80L,U1,U2,s,d,e. â\87©[s, d, e] L ≡ K →
- â\87§[d, e] T1 â\89¡ U1 â\86\92 â\87§[d, e] T2 ≡ U2 →
+ â\88\80L,U1,U2,s,d,e. â¬\87[s, d, e] L ≡ K →
+ â¬\86[d, e] T1 â\89¡ U1 â\86\92 â¬\86[d, e] T2 ≡ U2 →
d ≤ dt → ⦃G, L⦄ ⊢ U1 ▶[dt+e, et] U2.
#G #K #T1 #T2 #dt #et #H elim H -G -K -T1 -T2 -dt -et
[ #I #G #K #dt #et #L #U1 #U2 #s #d #e #_ #H1 #H2 #_
(* Basic_1: was: subst1_gen_lift_lt *)
lemma cpy_inv_lift1_le: ∀G,L,U1,U2,dt,et. ⦃G, L⦄ ⊢ U1 ▶[dt, et] U2 →
- â\88\80K,s,d,e. â\87©[s, d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
+ â\88\80K,s,d,e. â¬\87[s, d, e] L â\89¡ K â\86\92 â\88\80T1. â¬\86[d, e] T1 ≡ U1 →
dt + et ≤ d →
- â\88\83â\88\83T2. â¦\83G, Kâ¦\84 â\8a¢ T1 â\96¶[dt, et] T2 & â\87§[d, e] T2 ≡ U2.
+ â\88\83â\88\83T2. â¦\83G, Kâ¦\84 â\8a¢ T1 â\96¶[dt, et] T2 & â¬\86[d, e] T2 ≡ U2.
#G #L #U1 #U2 #dt #et #H elim H -G -L -U1 -U2 -dt -et
[ * #i #G #L #dt #et #K #s #d #e #_ #T1 #H #_
[ lapply (lift_inv_sort2 … H) -H #H destruct /2 width=3 by ex2_intro/
qed-.
lemma cpy_inv_lift1_be: ∀G,L,U1,U2,dt,et. ⦃G, L⦄ ⊢ U1 ▶[dt, et] U2 →
- â\88\80K,s,d,e. â\87©[s, d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
+ â\88\80K,s,d,e. â¬\87[s, d, e] L â\89¡ K â\86\92 â\88\80T1. â¬\86[d, e] T1 ≡ U1 →
dt ≤ d → yinj d + e ≤ dt + et →
- â\88\83â\88\83T2. â¦\83G, Kâ¦\84 â\8a¢ T1 â\96¶[dt, et-e] T2 & â\87§[d, e] T2 ≡ U2.
+ â\88\83â\88\83T2. â¦\83G, Kâ¦\84 â\8a¢ T1 â\96¶[dt, et-e] T2 & â¬\86[d, e] T2 ≡ U2.
#G #L #U1 #U2 #dt #et #H elim H -G -L -U1 -U2 -dt -et
[ * #i #G #L #dt #et #K #s #d #e #_ #T1 #H #_ #_
[ lapply (lift_inv_sort2 … H) -H #H destruct /2 width=3 by ex2_intro/
(* Basic_1: was: subst1_gen_lift_ge *)
lemma cpy_inv_lift1_ge: ∀G,L,U1,U2,dt,et. ⦃G, L⦄ ⊢ U1 ▶[dt, et] U2 →
- â\88\80K,s,d,e. â\87©[s, d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
+ â\88\80K,s,d,e. â¬\87[s, d, e] L â\89¡ K â\86\92 â\88\80T1. â¬\86[d, e] T1 ≡ U1 →
yinj d + e ≤ dt →
- â\88\83â\88\83T2. â¦\83G, Kâ¦\84 â\8a¢ T1 â\96¶[dt-e, et] T2 & â\87§[d, e] T2 ≡ U2.
+ â\88\83â\88\83T2. â¦\83G, Kâ¦\84 â\8a¢ T1 â\96¶[dt-e, et] T2 & â¬\86[d, e] T2 ≡ U2.
#G #L #U1 #U2 #dt #et #H elim H -G -L -U1 -U2 -dt -et
[ * #i #G #L #dt #et #K #s #d #e #_ #T1 #H #_
[ lapply (lift_inv_sort2 … H) -H #H destruct /2 width=3 by ex2_intro/
(* Advanced inversion lemmas on relocation ***********************************)
lemma cpy_inv_lift1_ge_up: ∀G,L,U1,U2,dt,et. ⦃G, L⦄ ⊢ U1 ▶[dt, et] U2 →
- â\88\80K,s,d,e. â\87©[s, d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
+ â\88\80K,s,d,e. â¬\87[s, d, e] L â\89¡ K â\86\92 â\88\80T1. â¬\86[d, e] T1 ≡ U1 →
d ≤ dt → dt ≤ yinj d + e → yinj d + e ≤ dt + et →
- â\88\83â\88\83T2. â¦\83G, Kâ¦\84 â\8a¢ T1 â\96¶[d, dt + et - (yinj d + e)] T2 & â\87§[d, e] T2 ≡ U2.
+ â\88\83â\88\83T2. â¦\83G, Kâ¦\84 â\8a¢ T1 â\96¶[d, dt + et - (yinj d + e)] T2 & â¬\86[d, e] T2 ≡ U2.
#G #L #U1 #U2 #dt #et #HU12 #K #s #d #e #HLK #T1 #HTU1 #Hddt #Hdtde #Hdedet
elim (cpy_split_up … HU12 (d + e)) -HU12 // -Hdedet #U #HU1 #HU2
lapply (cpy_weak … HU1 d e ? ?) -HU1 // [ >ymax_pre_sn_comm // ] -Hddt -Hdtde #HU1
qed-.
lemma cpy_inv_lift1_be_up: ∀G,L,U1,U2,dt,et. ⦃G, L⦄ ⊢ U1 ▶[dt, et] U2 →
- â\88\80K,s,d,e. â\87©[s, d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
+ â\88\80K,s,d,e. â¬\87[s, d, e] L â\89¡ K â\86\92 â\88\80T1. â¬\86[d, e] T1 ≡ U1 →
dt ≤ d → dt + et ≤ yinj d + e →
- â\88\83â\88\83T2. â¦\83G, Kâ¦\84 â\8a¢ T1 â\96¶[dt, d-dt] T2 & â\87§[d, e] T2 ≡ U2.
+ â\88\83â\88\83T2. â¦\83G, Kâ¦\84 â\8a¢ T1 â\96¶[dt, d-dt] T2 & â¬\86[d, e] T2 ≡ U2.
#G #L #U1 #U2 #dt #et #HU12 #K #s #d #e #HLK #T1 #HTU1 #Hdtd #Hdetde
lapply (cpy_weak … HU12 dt (d+e-dt) ? ?) -HU12 //
[ >ymax_pre_sn_comm /2 width=1 by yle_plus_dx1_trans/ ] -Hdetde #HU12
qed-.
lemma cpy_inv_lift1_le_up: ∀G,L,U1,U2,dt,et. ⦃G, L⦄ ⊢ U1 ▶[dt, et] U2 →
- â\88\80K,s,d,e. â\87©[s, d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
+ â\88\80K,s,d,e. â¬\87[s, d, e] L â\89¡ K â\86\92 â\88\80T1. â¬\86[d, e] T1 ≡ U1 →
dt ≤ d → d ≤ dt + et → dt + et ≤ yinj d + e →
- â\88\83â\88\83T2. â¦\83G, Kâ¦\84 â\8a¢ T1 â\96¶[dt, d - dt] T2 & â\87§[d, e] T2 ≡ U2.
+ â\88\83â\88\83T2. â¦\83G, Kâ¦\84 â\8a¢ T1 â\96¶[dt, d - dt] T2 & â¬\86[d, e] T2 ≡ U2.
#G #L #U1 #U2 #dt #et #HU12 #K #s #d #e #HLK #T1 #HTU1 #Hdtd #Hddet #Hdetde
elim (cpy_split_up … HU12 d) -HU12 // #U #HU1 #HU2
elim (cpy_inv_lift1_le … HU1 … HLK … HTU1) -U1