X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fdelayed_updating%2Funwind_k%2Funwind2_rmap.ma;fp=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fdelayed_updating%2Funwind_k%2Funwind2_rmap.ma;h=22a9c6f18f3ae200178f8f9b727753e539023368;hb=2815c74c03f38089d0e27aba00e2280223b0f76f;hp=0000000000000000000000000000000000000000;hpb=cf2a049a6cc888f6c5d0637ab0523f186058fc8f;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/unwind_k/unwind2_rmap.ma b/matita/matita/contribs/lambdadelta/delayed_updating/unwind_k/unwind2_rmap.ma new file mode 100644 index 000000000..22a9c6f18 --- /dev/null +++ b/matita/matita/contribs/lambdadelta/delayed_updating/unwind_k/unwind2_rmap.ma @@ -0,0 +1,92 @@ +(**************************************************************************) +(* ___ *) +(* ||M|| *) +(* ||A|| A project by Andrea Asperti *) +(* ||T|| *) +(* ||I|| Developers: *) +(* ||T|| The HELM team. *) +(* ||A|| http://helm.cs.unibo.it *) +(* \ / *) +(* \ / This file is distributed under the terms of the *) +(* v GNU General Public License Version 2 *) +(* *) +(**************************************************************************) + +include "delayed_updating/unwind_k/preunwind2_rmap.ma". +include "delayed_updating/syntax/path.ma". + +(* 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 ⇒ ▶[unwind2_rmap f q]l +]. + +interpretation + "tailed unwind (relocation map)" + 'BlackRightTriangle f p = (unwind2_rmap f p). + +(* Basic constructions ******************************************************) + +lemma unwind2_rmap_empty (f): + f = ▶[f]𝐞. +// qed. + +lemma unwind2_rmap_rcons (f) (p) (l): + ▶[▶[f]p]l = ▶[f](p◖l). +// qed. + +lemma unwind2_rmap_d_dx (f) (p) (k:pnat): + ▶[f]p∘𝐮❨k❩ = ▶[f](p◖𝗱k). +// qed. + +lemma unwind2_rmap_m_dx (f) (p): + ▶[f]p = ▶[f](p◖𝗺). +// qed. + +lemma unwind2_rmap_L_dx (f) (p): + (⫯▶[f]p) = ▶[f](p◖𝗟). +// qed. + +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 path_append *******************************************) + +lemma unwind2_rmap_append (f) (p) (q): + ▶[▶[f]p]q = ▶[f](p●q). +#f #p #q elim q -q // #l #q #IH +