X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambda_delta%2Fbasic_2%2Fgrammar%2Fcl_shift.ma;h=837b1c670c65cc6726e129056cbccc0e87d51925;hb=f6464ba2cffc9936b4d8285604786cd91531e0d0;hp=ea82bde3cfc1616dad076e1a671b4c8b1b33a157;hpb=a8c166f1e1baeeae04553058bd179420ada8bbe7;p=helm.git diff --git a/matita/matita/contribs/lambda_delta/basic_2/grammar/cl_shift.ma b/matita/matita/contribs/lambda_delta/basic_2/grammar/cl_shift.ma index ea82bde3c..837b1c670 100644 --- a/matita/matita/contribs/lambda_delta/basic_2/grammar/cl_shift.ma +++ b/matita/matita/contribs/lambda_delta/basic_2/grammar/cl_shift.ma @@ -12,13 +12,35 @@ (* *) (**************************************************************************) -include "basic_2/grammar/lenv.ma". +include "basic_2/grammar/lenv_append.ma". (* SHIFT OF A CLOSURE *******************************************************) let rec shift L T on L ≝ match L with [ LAtom ⇒ T -| LPair L I V ⇒ shift L (ⓑ{I} V. T) +| LPair L I V ⇒ shift L (-ⓑ{I} V. T) ]. interpretation "shift (closure)" 'Append L T = (shift L T). + +(* Basic properties *********************************************************) + +lemma shift_append_assoc: ∀L,K. ∀T:term. (L @@ K) @@ T = L @@ K @@ T. +#L #K elim K -K normalize // +qed. + +(* Basic inversion lemmas ***************************************************) + +lemma shift_inj: ∀L1,L2. ∀T1,T2:term. L1 @@ T1 = L2 @@ T2 → |L1| = |L2| → + L1 = L2 ∧ T1 = T2. +#L1 elim L1 -L1 +[ * normalize /2 width=1/ + #L2 #I2 #V2 #T1 #T2 #_