X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fdelayed_updating%2Fsubstitution%2Flift.ma;h=a487fcf5a0af45b15d4e07c72db723c80e340e81;hb=b15b3e2d9e333bf94677ff2731c825da3566c9ec;hp=0c083d99873a7776be55f8858951633022bdf0ed;hpb=8a47ade5ffd1942f9d16474c547e5050caab3cc8;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift.ma b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift.ma index 0c083d998..a487fcf5a 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift.ma @@ -12,29 +12,24 @@ (* *) (**************************************************************************) -include "ground/relocation/tr_compose_pap.ma". -include "ground/relocation/tr_uni_pap.ma". -include "delayed_updating/syntax/path.ma". include "delayed_updating/notation/functions/uparrow_4.ma". include "delayed_updating/notation/functions/uparrow_2.ma". +include "delayed_updating/syntax/path.ma". +include "ground/relocation/tr_uni.ma". +include "ground/relocation/tr_pap_tls.ma". (* LIFT FOR PATH ***********************************************************) definition lift_continuation (A:Type[0]) ≝ tr_map → path → A. -(* Note: inner numeric labels are not liftable, so they are removed *) rec definition lift_gen (A:Type[0]) (k:lift_continuation A) (f) (p) on p ≝ match p with [ list_empty ⇒ k f (𝐞) | list_lcons l q ⇒ match l with - [ label_d n ⇒ - match q with - [ list_empty ⇒ lift_gen (A) (λg,p. k g (𝗱(f@❨n❩)◗p)) (f∘𝐮❨n❩) q - | list_lcons _ _ ⇒ lift_gen (A) k (f∘𝐮❨n❩) q - ] - | label_m ⇒ lift_gen (A) k f q + [ label_d n ⇒ lift_gen (A) (λg,p. k g (𝗱(f@❨n❩)◗p)) (⇂*[n]f) q + | label_m ⇒ lift_gen (A) (λg,p. k g (𝗺◗p)) f q | label_L ⇒ lift_gen (A) (λg,p. k g (𝗟◗p)) (⫯f) q | label_A ⇒ lift_gen (A) (λg,p. k g (𝗔◗p)) f q | label_S ⇒ lift_gen (A) (λg,p. k g (𝗦◗p)) f q @@ -65,16 +60,12 @@ lemma lift_empty (A) (k) (f): k f (𝐞) = ↑{A}❨k, f, 𝐞❩. // qed. -lemma lift_d_empty_sn (A) (k) (n) (f): - ↑❨(λg,p. k g (𝗱(f@❨n❩)◗p)), f∘𝐮❨ninj n❩, 𝐞❩ = ↑{A}❨k, f, 𝗱n◗𝐞❩. -// qed. - -lemma lift_d_lcons_sn (A) (k) (p) (l) (n) (f): - ↑❨k, f∘𝐮❨ninj n❩, l◗p❩ = ↑{A}❨k, f, 𝗱n◗l◗p❩. +lemma lift_d_sn (A) (k) (p) (n) (f): + ↑❨(λg,p. k g (𝗱(f@❨n❩)◗p)), ⇂*[n]f, p❩ = ↑{A}❨k, f, 𝗱n◗p❩. // qed. lemma lift_m_sn (A) (k) (p) (f): - ↑❨k, f, p❩ = ↑{A}❨k, f, 𝗺◗p❩. + ↑❨(λg,p. k g (𝗺◗p)), f, p❩ = ↑{A}❨k, f, 𝗺◗p❩. // qed. lemma lift_L_sn (A) (k) (p) (f): @@ -95,18 +86,6 @@ lemma lift_path_empty (f): (𝐞) = ↑[f]𝐞. // qed. -lemma lift_path_d_empty_sn (f) (n): - 𝗱(f@❨n❩)◗𝐞 = ↑[f](𝗱n◗𝐞). -// qed. - -lemma lift_path_d_lcons_sn (f) (p) (l) (n): - ↑[f∘𝐮❨ninj n❩](l◗p) = ↑[f](𝗱n◗l◗p). -// qed. - -lemma lift_path_m_sn (f) (p): - ↑[f]p = ↑[f](𝗺◗p). -// qed. - (* Basic constructions with proj_rmap ***************************************) lemma lift_rmap_empty (f): @@ -114,8 +93,8 @@ lemma lift_rmap_empty (f): // qed. lemma lift_rmap_d_sn (f) (p) (n): - ↑[p](f∘𝐮❨ninj n❩) = ↑[𝗱n◗p]f. -#f * // qed. + ↑[p](⇂*[ninj n]f) = ↑[𝗱n◗p]f. +// qed. lemma lift_rmap_m_sn (f) (p): ↑[p]f = ↑[𝗺◗p]f. @@ -147,7 +126,7 @@ qed. (* Advanced constructions with proj_rmap and path_rcons *********************) lemma lift_rmap_d_dx (f) (p) (n): - (↑[p]f)∘𝐮❨ninj n❩ = ↑[p◖𝗱n]f. + ⇂*[ninj n](↑[p]f) = ↑[p◖𝗱n]f. // qed. lemma lift_rmap_m_dx (f) (p): @@ -167,23 +146,5 @@ lemma lift_rmap_S_dx (f) (p): // qed. lemma lift_rmap_pap_d_dx (f) (p) (n) (m): - ↑[p]f@❨m+n❩ = ↑[p◖𝗱n]f@❨m❩. -#f #p #n #m -