X-Git-Url: http://matita.cs.unibo.it/gitweb/?p=helm.git;a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Frelocation%2Flifts_lifts_vector.ma;h=26a4fbede90f17f51593738d9dffeff67f250d68;hp=fb5953c267baa16fb83b74c28aa49544e1c792be;hb=222044da28742b24584549ba86b1805a87def070;hpb=7593c0f74b944fb100493fb24b665ce3b8d1d252 diff --git a/matita/matita/contribs/lambdadelta/basic_2/relocation/lifts_lifts_vector.ma b/matita/matita/contribs/lambdadelta/basic_2/relocation/lifts_lifts_vector.ma index fb5953c26..26a4fbede 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/relocation/lifts_lifts_vector.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/relocation/lifts_lifts_vector.ma @@ -15,14 +15,14 @@ include "basic_2/relocation/lifts_lifts.ma". include "basic_2/relocation/lifts_vector.ma". -(* GENERIC TERM VECTOR RELOCATION *******************************************) +(* GENERIC RELOCATION FOR TERM VECTORS *************************************) (* Main properties **********************************************************) (* Basic_1: includes: lifts_inj *) -theorem liftsv_inj: ∀T1s,Us,t. ⬆*[t] T1s ≡ Us → - ∀T2s. ⬆*[t] T2s ≡ Us → T1s = T2s. -#T1s #Us #t #H elim H -T1s -Us +theorem liftsv_inj: ∀f,T1s,Us. ⬆*[f] T1s ≘ Us → + ∀T2s. ⬆*[f] T2s ≘ Us → T1s = T2s. +#f #T1s #Us #H elim H -T1s -Us [ #T2s #H >(liftsv_inv_nil2 … H) -H // | #T1s #Us #T1 #U #HT1U #_ #IHT1Us #X #H destruct elim (liftsv_inv_cons2 … H) -H #T2 #T2s #HT2U #HT2Us #H destruct @@ -31,9 +31,9 @@ theorem liftsv_inj: ∀T1s,Us,t. ⬆*[t] T1s ≡ Us → qed-. (* Basic_2A1: includes: liftv_mono *) -theorem liftsv_mono: ∀Ts,U1s,t. ⬆*[t] Ts ≡ U1s → - ∀U2s. ⬆*[t] Ts ≡ U2s → U1s = U2s. -#Ts #U1s #t #H elim H -Ts -U1s +theorem liftsv_mono: ∀f,Ts,U1s. ⬆*[f] Ts ≘ U1s → + ∀U2s. ⬆*[f] Ts ≘ U2s → U1s = U2s. +#f #Ts #U1s #H elim H -Ts -U1s [ #U2s #H >(liftsv_inv_nil1 … H) -H // | #Ts #U1s #T #U1 #HTU1 #_ #IHTU1s #X #H destruct elim (liftsv_inv_cons1 … H) -H #U2 #U2s #HTU2 #HTU2s #H destruct @@ -43,11 +43,11 @@ qed-. (* Basic_1: includes: lifts1_xhg (right to left) *) (* Basic_2A1: includes: liftsv_liftv_trans_le *) -theorem liftsv_trans: ∀T1s,Ts,t1. ⬆*[t1] T1s ≡ Ts → ∀T2s,t2. ⬆*[t2] Ts ≡ T2s → - ∀t. t2 ⊚ t1 ≡ t → ⬆*[t] T1s ≡ T2s. -#T1s #Ts #t1 #H elim H -T1s -Ts -[ #T2s #t2 #H >(liftsv_inv_nil1 … H) -T2s /2 width=3 by liftsv_nil/ -| #T1s #Ts #T1 #T #HT1 #_ #IHT1s #X #t2 #H elim (liftsv_inv_cons1 … H) -H +theorem liftsv_trans: ∀f1,T1s,Ts. ⬆*[f1] T1s ≘ Ts → ∀T2s,f2. ⬆*[f2] Ts ≘ T2s → + ∀f. f2 ⊚ f1 ≘ f → ⬆*[f] T1s ≘ T2s. +#f1 #T1s #Ts #H elim H -T1s -Ts +[ #T2s #f2 #H >(liftsv_inv_nil1 … H) -T2s /2 width=3 by liftsv_nil/ +| #T1s #Ts #T1 #T #HT1 #_ #IHT1s #X #f2 #H elim (liftsv_inv_cons1 … H) -H #T2 #T2s #HT2 #HT2s #H destruct /3 width=6 by lifts_trans, liftsv_cons/ ] qed-.