(* Advanced inversion lemmas ************************************************)
-fact tps_inv_refl_SO2_aux: â\88\80L,T1,T2,d,e. L â\8a¢ T1 [d, e] â\89« T2 → e = 1 →
- â\88\80K,V. â\87\93[0, d] L ≡ K. 𝕓{Abst} V → T1 = T2.
+fact tps_inv_refl_SO2_aux: â\88\80L,T1,T2,d,e. L â\8a¢ T1 [d, e] â\96¶ T2 → e = 1 →
+ â\88\80K,V. â\87©[0, d] L ≡ K. 𝕓{Abst} V → T1 = T2.
#L #T1 #T2 #d #e #H elim H -L -T1 -T2 -d -e
[ //
| #L #K0 #V0 #W #i #d #e #Hdi #Hide #HLK0 #_ #H destruct
]
qed.
-lemma tps_inv_refl_SO2: â\88\80L,T1,T2,d. L â\8a¢ T1 [d, 1] â\89« T2 →
- â\88\80K,V. â\87\93[0, d] L ≡ K. 𝕓{Abst} V → T1 = T2.
+lemma tps_inv_refl_SO2: â\88\80L,T1,T2,d. L â\8a¢ T1 [d, 1] â\96¶ T2 →
+ â\88\80K,V. â\87©[0, d] L ≡ K. 𝕓{Abst} V → T1 = T2.
/2 width=8/ qed-.
(* Relocation properties ****************************************************)
(* Basic_1: was: subst1_lift_lt *)
-lemma tps_lift_le: â\88\80K,T1,T2,dt,et. K â\8a¢ T1 [dt, et] â\89« T2 →
- â\88\80L,U1,U2,d,e. â\87\93[d, e] L ≡ K →
- â\87\91[d, e] T1 â\89¡ U1 â\86\92 â\87\91[d, e] T2 ≡ U2 →
+lemma tps_lift_le: â\88\80K,T1,T2,dt,et. K â\8a¢ T1 [dt, et] â\96¶ T2 →
+ â\88\80L,U1,U2,d,e. â\87©[d, e] L ≡ K →
+ â\87§[d, e] T1 â\89¡ U1 â\86\92 â\87§[d, e] T2 ≡ U2 →
dt + et ≤ d →
- L â\8a¢ U1 [dt, et] â\89« U2.
+ L â\8a¢ U1 [dt, et] â\96¶ U2.
#K #T1 #T2 #dt #et #H elim H -K -T1 -T2 -dt -et
[ #K #I #dt #et #L #U1 #U2 #d #e #_ #H1 #H2 #_
>(lift_mono … H1 … H2) -H1 -H2 //
]
qed.
-lemma tps_lift_be: â\88\80K,T1,T2,dt,et. K â\8a¢ T1 [dt, et] â\89« T2 →
- â\88\80L,U1,U2,d,e. â\87\93[d, e] L ≡ K →
- â\87\91[d, e] T1 â\89¡ U1 â\86\92 â\87\91[d, e] T2 ≡ U2 →
+lemma tps_lift_be: â\88\80K,T1,T2,dt,et. K â\8a¢ T1 [dt, et] â\96¶ T2 →
+ â\88\80L,U1,U2,d,e. â\87©[d, e] L ≡ K →
+ â\87§[d, e] T1 â\89¡ U1 â\86\92 â\87§[d, e] T2 ≡ U2 →
dt ≤ d → d ≤ dt + et →
- L â\8a¢ U1 [dt, et + e] â\89« U2.
+ L â\8a¢ U1 [dt, et + e] â\96¶ U2.
#K #T1 #T2 #dt #et #H elim H -K -T1 -T2 -dt -et
[ #K #I #dt #et #L #U1 #U2 #d #e #_ #H1 #H2 #_ #_
>(lift_mono … H1 … H2) -H1 -H2 //
qed.
(* Basic_1: was: subst1_lift_ge *)
-lemma tps_lift_ge: â\88\80K,T1,T2,dt,et. K â\8a¢ T1 [dt, et] â\89« T2 →
- â\88\80L,U1,U2,d,e. â\87\93[d, e] L ≡ K →
- â\87\91[d, e] T1 â\89¡ U1 â\86\92 â\87\91[d, e] T2 ≡ U2 →
+lemma tps_lift_ge: â\88\80K,T1,T2,dt,et. K â\8a¢ T1 [dt, et] â\96¶ T2 →
+ â\88\80L,U1,U2,d,e. â\87©[d, e] L ≡ K →
+ â\87§[d, e] T1 â\89¡ U1 â\86\92 â\87§[d, e] T2 ≡ U2 →
d ≤ dt →
- L â\8a¢ U1 [dt + e, et] â\89« U2.
+ L â\8a¢ U1 [dt + e, et] â\96¶ U2.
#K #T1 #T2 #dt #et #H elim H -K -T1 -T2 -dt -et
[ #K #I #dt #et #L #U1 #U2 #d #e #_ #H1 #H2 #_
>(lift_mono … H1 … H2) -H1 -H2 //
qed.
(* Basic_1: was: subst1_gen_lift_lt *)
-lemma tps_inv_lift1_le: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\89« U2 →
- â\88\80K,d,e. â\87\93[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87\91[d, e] T1 ≡ U1 →
+lemma tps_inv_lift1_le: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\96¶ U2 →
+ â\88\80K,d,e. â\87©[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
dt + et ≤ d →
- â\88\83â\88\83T2. K â\8a¢ T1 [dt, et] â\89« T2 & â\87\91[d, e] T2 ≡ U2.
+ â\88\83â\88\83T2. K â\8a¢ T1 [dt, et] â\96¶ T2 & â\87§[d, e] T2 ≡ U2.
#L #U1 #U2 #dt #et #H elim H -L -U1 -U2 -dt -et
[ #L * #i #dt #et #K #d #e #_ #T1 #H #_
[ lapply (lift_inv_sort2 … H) -H #H destruct /2 width=3/
]
qed.
-lemma tps_inv_lift1_be: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\89« U2 →
- â\88\80K,d,e. â\87\93[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87\91[d, e] T1 ≡ U1 →
+lemma tps_inv_lift1_be: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\96¶ U2 →
+ â\88\80K,d,e. â\87©[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
dt ≤ d → d + e ≤ dt + et →
- â\88\83â\88\83T2. K â\8a¢ T1 [dt, et - e] â\89« T2 & â\87\91[d, e] T2 ≡ U2.
+ â\88\83â\88\83T2. K â\8a¢ T1 [dt, et - e] â\96¶ T2 & â\87§[d, e] T2 ≡ U2.
#L #U1 #U2 #dt #et #H elim H -L -U1 -U2 -dt -et
[ #L * #i #dt #et #K #d #e #_ #T1 #H #_
[ lapply (lift_inv_sort2 … H) -H #H destruct /2 width=3/
qed.
(* Basic_1: was: subst1_gen_lift_ge *)
-lemma tps_inv_lift1_ge: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\89« U2 →
- â\88\80K,d,e. â\87\93[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87\91[d, e] T1 ≡ U1 →
+lemma tps_inv_lift1_ge: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\96¶ U2 →
+ â\88\80K,d,e. â\87©[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
d + e ≤ dt →
- â\88\83â\88\83T2. K â\8a¢ T1 [dt - e, et] â\89« T2 & â\87\91[d, e] T2 ≡ U2.
+ â\88\83â\88\83T2. K â\8a¢ T1 [dt - e, et] â\96¶ T2 & â\87§[d, e] T2 ≡ U2.
#L #U1 #U2 #dt #et #H elim H -L -U1 -U2 -dt -et
[ #L * #i #dt #et #K #d #e #_ #T1 #H #_
[ lapply (lift_inv_sort2 … H) -H #H destruct /2 width=3/
(* Basic_1: was: subst1_gen_lift_eq *)
lemma tps_inv_lift1_eq: ∀L,U1,U2,d,e.
- L â\8a¢ U1 [d, e] â\89« U2 â\86\92 â\88\80T1. â\87\91[d, e] T1 ≡ U1 → U1 = U2.
+ L â\8a¢ U1 [d, e] â\96¶ U2 â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 → U1 = U2.
#L #U1 #U2 #d #e #H elim H -L -U1 -U2 -d -e
[ //
| #L #K #V #W #i #d #e #Hdi #Hide #_ #_ #T1 #H
(le d i) -> (lt i (plus d h)) ->
(EX u1 | t1 = (lift (minus (plus d h) (S i)) (S i) u1)).
*)
-lemma tps_inv_lift1_up: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\89« U2 →
- â\88\80K,d,e. â\87\93[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87\91[d, e] T1 ≡ U1 →
+lemma tps_inv_lift1_up: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\96¶ U2 →
+ â\88\80K,d,e. â\87©[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
d ≤ dt → dt ≤ d + e → d + e ≤ dt + et →
- â\88\83â\88\83T2. K â\8a¢ T1 [d, dt + et - (d + e)] â\89« T2 & â\87\91[d, e] T2 ≡ U2.
+ â\88\83â\88\83T2. K â\8a¢ T1 [d, dt + et - (d + e)] â\96¶ T2 & â\87§[d, e] T2 ≡ U2.
#L #U1 #U2 #dt #et #HU12 #K #d #e #HLK #T1 #HTU1 #Hddt #Hdtde #Hdedet
elim (tps_split_up … HU12 (d + e) ? ?) -HU12 // -Hdedet #U #HU1 #HU2
lapply (tps_weak … HU1 d e ? ?) -HU1 // [ >commutative_plus /2 width=1/ ] -Hddt -Hdtde #HU1
elim (tps_inv_lift1_ge … HU2 … HLK … HTU1 ?) -U -L // <minus_plus_m_m /2 width=3/
qed.
-lemma tps_inv_lift1_be_up: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\89« U2 →
- â\88\80K,d,e. â\87\93[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87\91[d, e] T1 ≡ U1 →
+lemma tps_inv_lift1_be_up: â\88\80L,U1,U2,dt,et. L â\8a¢ U1 [dt, et] â\96¶ U2 →
+ â\88\80K,d,e. â\87©[d, e] L â\89¡ K â\86\92 â\88\80T1. â\87§[d, e] T1 ≡ U1 →
dt ≤ d → dt + et ≤ d + e →
- â\88\83â\88\83T2. K â\8a¢ T1 [dt, d - dt] â\89« T2 & â\87\91[d, e] T2 ≡ U2.
+ â\88\83â\88\83T2. K â\8a¢ T1 [dt, d - dt] â\96¶ T2 & â\87§[d, e] T2 ≡ U2.
#L #U1 #U2 #dt #et #HU12 #K #d #e #HLK #T1 #HTU1 #Hdtd #Hdetde
lapply (tps_weak … HU12 dt (d + e - dt) ? ?) -HU12 // /2 width=3/ -Hdetde #HU12
elim (tps_inv_lift1_be … HU12 … HLK … HTU1 ? ?) -U1 -L // /2 width=3/