X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fapps_2%2Ffunctional%2Fflifts.ma;h=9a5db82f1b6ff532314205667573df30e4cc805b;hb=68b4f2490c12139c03760b39895619e63b0f38c9;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..9a5db82f1 100644 --- a/matita/matita/contribs/lambdadelta/apps_2/functional/flifts.ma +++ b/matita/matita/contribs/lambdadelta/apps_2/functional/flifts.ma @@ -12,7 +12,7 @@ (* *) (**************************************************************************) -include "ground_2/notation/functions/uparrowstar_2.ma". +include "ground/notation/functions/uparrowstar_2.ma". include "apps_2/notation/functional/uparrow_2.ma". include "static_2/relocation/lifts.ma". @@ -21,12 +21,12 @@ include "static_2/relocation/lifts.ma". rec definition flifts f U on U ≝ match U with [ TAtom I ⇒ match I with [ Sort _ ⇒ U - | LRef i ⇒ #(f@❴i❵) + | LRef i ⇒ #(f@❨i❩) | GRef _ ⇒ U ] | TPair I V T ⇒ match I with - [ Bind2 p I ⇒ ⓑ{p,I}(flifts f V).(flifts (⫯f) T) - | Flat2 I ⇒ ⓕ{I}(flifts f V).(flifts f T) + [ Bind2 p I ⇒ ⓑ[p,I](flifts f V).(flifts (⫯f) T) + | Flat2 I ⇒ ⓕ[I](flifts f V).(flifts f T) ] ]. @@ -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. -*)