X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fmultiple%2Flifts_vector.ma;h=5951134f62f23508396e5ba3e1c826867fd879d5;hb=37e1b4f314ffae815beca71300688040f8da6939;hp=c285d520aa4ae2cc0a7d1cdfd16603f184fb1595;hpb=c60524dec7ace912c416a90d6b926bee8553250b;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/multiple/lifts_vector.ma b/matita/matita/contribs/lambdadelta/basic_2/multiple/lifts_vector.ma index c285d520a..5951134f6 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/multiple/lifts_vector.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/multiple/lifts_vector.ma @@ -17,26 +17,26 @@ include "basic_2/multiple/lifts.ma". (* GENERIC TERM VECTOR RELOCATION *******************************************) -inductive liftsv (des:list2 nat nat) : relation (list term) ≝ -| liftsv_nil : liftsv des (◊) (◊) +inductive liftsv (cs:list2 nat nat) : relation (list term) ≝ +| liftsv_nil : liftsv cs (◊) (◊) | liftsv_cons: ∀T1s,T2s,T1,T2. - ⬆*[des] T1 ≡ T2 → liftsv des T1s T2s → - liftsv des (T1 @ T1s) (T2 @ T2s) + ⬆*[cs] T1 ≡ T2 → liftsv cs T1s T2s → + liftsv cs (T1 @ T1s) (T2 @ T2s) . interpretation "generic relocation (vector)" - 'RLiftStar des T1s T2s = (liftsv des T1s T2s). + 'RLiftStar cs T1s T2s = (liftsv cs T1s T2s). (* Basic inversion lemmas ***************************************************) (* Basic_1: was: lifts1_flat (left to right) *) -lemma lifts_inv_applv1: ∀V1s,U1,T2,des. ⬆*[des] Ⓐ V1s. U1 ≡ T2 → - ∃∃V2s,U2. ⬆*[des] V1s ≡ V2s & ⬆*[des] U1 ≡ U2 & +lemma lifts_inv_applv1: ∀V1s,U1,T2,cs. ⬆*[cs] Ⓐ V1s. U1 ≡ T2 → + ∃∃V2s,U2. ⬆*[cs] V1s ≡ V2s & ⬆*[cs] U1 ≡ U2 & T2 = Ⓐ V2s. U2. #V1s elim V1s -V1s normalize -[ #T1 #T2 #des #HT12 +[ #T1 #T2 #cs #HT12 @ex3_2_intro [3,4: // |1,2: skip | // ] (**) (* explicit constructor *) -| #V1 #V1s #IHV1s #T1 #X #des #H +| #V1 #V1s #IHV1s #T1 #X #cs #H elim (lifts_inv_flat1 … H) -H #V2 #Y #HV12 #HY #H destruct elim (IHV1s … HY) -IHV1s -HY #V2s #T2 #HV12s #HT12 #H destruct @(ex3_2_intro) [4: // |3: /2 width=2 by liftsv_cons/ |1,2: skip | // ] (**) (* explicit constructor *) @@ -46,8 +46,8 @@ qed-. (* Basic properties *********************************************************) (* Basic_1: was: lifts1_flat (right to left) *) -lemma lifts_applv: ∀V1s,V2s,des. ⬆*[des] V1s ≡ V2s → - ∀T1,T2. ⬆*[des] T1 ≡ T2 → - ⬆*[des] Ⓐ V1s. T1 ≡ Ⓐ V2s. T2. -#V1s #V2s #des #H elim H -V1s -V2s /3 width=1 by lifts_flat/ +lemma lifts_applv: ∀V1s,V2s,cs. ⬆*[cs] V1s ≡ V2s → + ∀T1,T2. ⬆*[cs] T1 ≡ T2 → + ⬆*[cs] Ⓐ V1s. T1 ≡ Ⓐ V2s. T2. +#V1s #V2s #cs #H elim H -V1s -V2s /3 width=1 by lifts_flat/ qed.