X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fdelayed_updating%2Funwind%2Funwind2_rmap.ma;h=5177fd7eea72a4281515f1259b9ee8afb8836d52;hb=48cd63fc7f4415925582eae224a36a9c1bb3cc06;hp=879af25186de361c55a6abc83d74a877003e8b73;hpb=dfcad1c1a698bac1b7fb6a5f59393b28f45182af;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/unwind/unwind2_rmap.ma b/matita/matita/contribs/lambdadelta/delayed_updating/unwind/unwind2_rmap.ma index 879af2518..5177fd7ee 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/unwind/unwind2_rmap.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/unwind/unwind2_rmap.ma @@ -12,92 +12,81 @@ (* *) (**************************************************************************) +include "delayed_updating/unwind/preunwind2_rmap.ma". include "delayed_updating/syntax/path.ma". -include "delayed_updating/notation/functions/black_righttriangle_2.ma". -include "delayed_updating/notation/functions/black_righttriangle_1.ma". -include "ground/relocation/tr_uni.ma". -include "ground/relocation/tr_compose.ma". -(* UNWIND MAP FOR PATH ******************************************************) +(* TAILED UNWIND FOR RELOCATION MAP *****************************************) rec definition unwind2_rmap (f) (p) on p: tr_map ≝ match p with [ list_empty ⇒ f -| list_lcons l q ⇒ - match l with - [ label_d n ⇒ (unwind2_rmap f q)∘𝐮❨n❩ - | label_m ⇒ unwind2_rmap f q - | label_L ⇒ ⫯(unwind2_rmap f q) - | label_A ⇒ unwind2_rmap f q - | label_S ⇒ unwind2_rmap f q - ] +| list_lcons l q ⇒ ▶[unwind2_rmap f q]l ]. interpretation - "tailed unwind map (reversed path)" + "tailed unwind (relocation map)" 'BlackRightTriangle f p = (unwind2_rmap f p). -interpretation - "unwind map (reversed path)" - 'BlackRightTriangle p = (unwind2_rmap tr_id p). - (* Basic constructions ******************************************************) lemma unwind2_rmap_empty (f): f = ▶[f]𝐞. // qed. -lemma unwind2_rmap_d_sn (f) (p) (n:pnat): - (▶[f]p∘𝐮❨n❩) = ▶[f](𝗱n◗p). +lemma unwind2_rmap_rcons (f) (p) (l): + ▶[▶[f]p]l = ▶[f](p◖l). // qed. -lemma unwind2_rmap_m_sn (f) (p): - ▶[f]p = ▶[f](𝗺◗p). +lemma unwind2_rmap_d_dx (f) (p) (k:pnat): + ▶[f]p∘𝐮❨k❩ = ▶[f](p◖𝗱k). // qed. -lemma unwind2_rmap_L_sn (f) (p): - (⫯▶[f]p) = ▶[f](𝗟◗p). +lemma unwind2_rmap_m_dx (f) (p): + ▶[f]p = ▶[f](p◖𝗺). // qed. -lemma unwind2_rmap_A_sn (f) (p): - ▶[f]p = ▶[f](𝗔◗p). +lemma unwind2_rmap_L_dx (f) (p): + (⫯▶[f]p) = ▶[f](p◖𝗟). // qed. -lemma unwind2_rmap_S_sn (f) (p): - ▶[f]p = ▶[f](𝗦◗p). +lemma unwind2_rmap_A_dx (f) (p): + ▶[f]p = ▶[f](p◖𝗔). +// qed. + +lemma unwind2_rmap_S_dx (f) (p): + ▶[f]p = ▶[f](p◖𝗦). // qed. -(* Constructions with list_append *******************************************) - -lemma unwind2_rmap_append (f) (p1) (p2): - ▶[▶[f]p2]p1 = ▶[f](p1●p2). -#f #p1 elim p1 -p1 // -* [ #n ] #p1 #IH #p2 // -[