(* Vector form of forward lemmas with outer equivalence for terms ***********)
lemma cpxs_fwd_sort_vector (G) (L):
- â\88\80s,Vs,X2. â\9dªG,Lâ\9d« ⊢ ⒶVs.⋆s ⬈* X2 → ⒶVs.⋆s ~ X2.
+ â\88\80s,Vs,X2. â\9d¨G,Lâ\9d© ⊢ ⒶVs.⋆s ⬈* X2 → ⒶVs.⋆s ~ X2.
#G #L #s #Vs elim Vs -Vs /2 width=4 by cpxs_fwd_sort/
#V #Vs #IHVs #X2 #H
elim (cpxs_inv_appl1 … H) -H *
lemma cpxs_fwd_delta_drops_vector (I) (G) (L) (K):
∀V1,i. ⇩[i] L ≘ K.ⓑ[I]V1 →
∀V2. ⇧[↑i] V1 ≘ V2 →
- â\88\80Vs,X2. â\9dªG,Lâ\9d« ⊢ ⒶVs.#i ⬈* X2 →
- â\88¨â\88¨ â\92¶Vs.#i ~ X2 | â\9dªG,Lâ\9d« ⊢ ⒶVs.V2 ⬈* X2.
+ â\88\80Vs,X2. â\9d¨G,Lâ\9d© ⊢ ⒶVs.#i ⬈* X2 →
+ â\88¨â\88¨ â\92¶Vs.#i ~ X2 | â\9d¨G,Lâ\9d© ⊢ ⒶVs.V2 ⬈* X2.
#I #G #L #K #V1 #i #HLK #V2 #HV12 #Vs
elim Vs -Vs /2 width=5 by cpxs_fwd_delta_drops/
#V #Vs #IHVs #X2 #H -K -V1
(* Basic_1: was just: pr3_iso_appls_beta *)
lemma cpxs_fwd_beta_vector (p) (G) (L):
- â\88\80Vs,V,W,T,X2. â\9dªG,Lâ\9d« ⊢ ⒶVs.ⓐV.ⓛ[p]W.T ⬈* X2 →
- â\88¨â\88¨ â\92¶Vs.â\93\90V.â\93\9b[p]W. T ~ X2 | â\9dªG,Lâ\9d« ⊢ ⒶVs.ⓓ[p]ⓝW.V.T ⬈* X2.
+ â\88\80Vs,V,W,T,X2. â\9d¨G,Lâ\9d© ⊢ ⒶVs.ⓐV.ⓛ[p]W.T ⬈* X2 →
+ â\88¨â\88¨ â\92¶Vs.â\93\90V.â\93\9b[p]W. T ~ X2 | â\9d¨G,Lâ\9d© ⊢ ⒶVs.ⓓ[p]ⓝW.V.T ⬈* X2.
#p #G #L #Vs elim Vs -Vs /2 width=1 by cpxs_fwd_beta/
#V0 #Vs #IHVs #V #W #T #X2 #H
elim (cpxs_inv_appl1 … H) -H *
(* Basic_1: was just: pr3_iso_appls_abbr *)
lemma cpxs_fwd_theta_vector (G) (L):
∀V1b,V2b. ⇧[1] V1b ≘ V2b →
- â\88\80p,V,T,X2. â\9dªG,Lâ\9d« ⊢ ⒶV1b.ⓓ[p]V.T ⬈* X2 →
- â\88¨â\88¨ â\92¶V1b.â\93\93[p]V.T ~ X2 | â\9dªG,Lâ\9d« ⊢ ⓓ[p]V.ⒶV2b.T ⬈* X2.
+ â\88\80p,V,T,X2. â\9d¨G,Lâ\9d© ⊢ ⒶV1b.ⓓ[p]V.T ⬈* X2 →
+ â\88¨â\88¨ â\92¶V1b.â\93\93[p]V.T ~ X2 | â\9d¨G,Lâ\9d© ⊢ ⓓ[p]V.ⒶV2b.T ⬈* X2.
#G #L #V1b #V2b * -V1b -V2b /3 width=1 by or_intror/
#V1b #V2b #V1a #V2a #HV12a #HV12b #p
generalize in match HV12a; -HV12a
(* Basic_1: was just: pr3_iso_appls_cast *)
lemma cpxs_fwd_cast_vector (G) (L):
- â\88\80Vs,W,T,X2. â\9dªG,Lâ\9d« ⊢ ⒶVs.ⓝW.T ⬈* X2 →
+ â\88\80Vs,W,T,X2. â\9d¨G,Lâ\9d© ⊢ ⒶVs.ⓝW.T ⬈* X2 →
∨∨ ⒶVs. ⓝW. T ~ X2
- | â\9dªG,Lâ\9d« ⊢ ⒶVs.T ⬈* X2
- | â\9dªG,Lâ\9d« ⊢ ⒶVs.W ⬈* X2.
+ | â\9d¨G,Lâ\9d© ⊢ ⒶVs.T ⬈* X2
+ | â\9d¨G,Lâ\9d© ⊢ ⒶVs.W ⬈* X2.
#G #L #Vs elim Vs -Vs /2 width=1 by cpxs_fwd_cast/
#V #Vs #IHVs #W #T #X2 #H
elim (cpxs_inv_appl1 … H) -H *
(* Basic_1: was just: nf2_iso_appls_lref *)
lemma cpxs_fwd_cnx_vector (G) (L):
- â\88\80T. ð\9d\90\92â\9dªTâ\9d« â\86\92 â\9dªG,Lâ\9d« ⊢ ⬈𝐍 T →
- â\88\80Vs,X2. â\9dªG,Lâ\9d« ⊢ ⒶVs.T ⬈* X2 → ⒶVs.T ~ X2.
+ â\88\80T. ð\9d\90\92â\9d¨Tâ\9d© â\86\92 â\9d¨G,Lâ\9d© ⊢ ⬈𝐍 T →
+ â\88\80Vs,X2. â\9d¨G,Lâ\9d© ⊢ ⒶVs.T ⬈* X2 → ⒶVs.T ~ X2.
#G #L #T #H1T #H2T #Vs elim Vs -Vs [ @(cpxs_fwd_cnx … H2T) ] (**) (* /2 width=3 by cpxs_fwd_cnx/ does not work *)
#V #Vs #IHVs #X2 #H
elim (cpxs_inv_appl1 … H) -H *