X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fapps_2%2Ffunctional%2Fflifts.ma;h=b266b3ae831c7a69d63ada7c5d4dd7a18c9d884f;hb=67fe9cec87e129a2a41c75d7ed8456a6f3314421;hp=edc607bbc63f58a01b5e8f7837756266bb97ef26;hpb=cc6fcb70ca4f3cf01205ed722d75a2fdb2aaf779;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/apps_2/functional/flifts.ma b/matita/matita/contribs/lambdadelta/apps_2/functional/flifts.ma index edc607bbc..b266b3ae8 100644 --- a/matita/matita/contribs/lambdadelta/apps_2/functional/flifts.ma +++ b/matita/matita/contribs/lambdadelta/apps_2/functional/flifts.ma @@ -36,16 +36,27 @@ interpretation "generic functional relocation (term)" interpretation "uniform functional relocation (term)" 'UpArrow i T = (flifts (uni i) T). +(* Basic properties *********************************************************) + +lemma flifts_lref (f) (i): ↑*[f](#i) = #(f@❴i❵). +// qed. + +lemma flifts_bind (f) (p) (I) (V) (T): ↑*[f](ⓑ{p,I}V.T) = ⓑ{p,I}↑*[f]V.↑*[⫯f]T. +// qed. + +lemma flifts_flat (f) (I) (V) (T): ↑*[f](ⓕ{I}V.T) = ⓕ{I}↑*[f]V.↑*[f]T. +// qed. + (* Main properties **********************************************************) -theorem flifts_lifts: ∀T,f. ⬆*[f]T ≘ ↑*[f]T. +theorem flifts_lifts: ∀T,f. ⇧*[f]T ≘ ↑*[f]T. #T elim T -T * /2 width=1 by lifts_sort, lifts_lref, lifts_gref, lifts_bind, lifts_flat/ qed. (* Main inversion properties ************************************************) -theorem flifts_inv_lifts: ∀f,T1,T2. ⬆*[f]T1 ≘ T2 → ↑*[f]T1 = T2. +theorem flifts_inv_lifts: ∀f,T1,T2. ⇧*[f]T1 ≘ T2 → ↑*[f]T1 = T2. #f #T1 #T2 #H elim H -f -T1 -T2 // [ #f #i1 #i2 #H <(at_inv_total … H) // | #f #p #I #V1 #V2 #T1 #T2 #_ #_ #IHV #IHT (flift_inv_lift … H) -H // -qed. -*)