X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fground%2Frelocation%2Fgr_map.ma;fp=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fground%2Frelocation%2Fgr_map.ma;h=ac568e1f0e52ed71c9e425686a0c58d26b22aac2;hb=55c768d7e45babb300b5010463ba3196a68f1bbe;hp=0000000000000000000000000000000000000000;hpb=15212e44902f25536f6e2de4bec4cedcd9a9804d;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/ground/relocation/gr_map.ma b/matita/matita/contribs/lambdadelta/ground/relocation/gr_map.ma new file mode 100644 index 000000000..ac568e1f0 --- /dev/null +++ b/matita/matita/contribs/lambdadelta/ground/relocation/gr_map.ma @@ -0,0 +1,69 @@ +(**************************************************************************) +(* ___ *) +(* ||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 "ground/notation/functions/upspoon_1.ma". +include "ground/notation/functions/uparrow_1.ma". +include "ground/lib/stream.ma". +include "ground/lib/bool.ma". + +(* GENERIC RELOCATION MAPS **************************************************) + +(*** rtmap *) +definition gr_map: Type[0] ≝ stream bool. + +(*** push *) +definition gr_push (f): gr_map ≝ Ⓕ⨮f. + +interpretation + "push (generic relocation maps)" + 'UpSpoon f = (gr_push f). + +(*** next *) +definition gr_next (f): gr_map ≝ Ⓣ⨮f. + +interpretation + "next (generic relocation maps)" + 'UpArrow f = (gr_next f). + +(* Basic properties (specific) **********************************************) + +(*** push_rew *) +lemma gr_push_unfold (f): Ⓕ⨮f = ⫯f. +// qed. + +(*** next_rew *) +lemma gr_next_unfold (f): Ⓣ⨮f = ↑f. +// qed. + +(* Basic inversion lemmas ***************************************************) + +(*** injective_push *) +lemma eq_inv_gr_push_bi: injective ? ? gr_push. +#f1 #f2