]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/lambdadelta/ground/relocation/tr_pushs.ma
update in ground
[helm.git] / matita / matita / contribs / lambdadelta / ground / relocation / tr_pushs.ma
1 (**************************************************************************)
2 (*       ___                                                              *)
3 (*      ||M||                                                             *)
4 (*      ||A||       A project by Andrea Asperti                           *)
5 (*      ||T||                                                             *)
6 (*      ||I||       Developers:                                           *)
7 (*      ||T||         The HELM team.                                      *)
8 (*      ||A||         http://helm.cs.unibo.it                             *)
9 (*      \   /                                                             *)
10 (*       \ /        This file is distributed under the terms of the       *)
11 (*        v         GNU General Public License Version 2                  *)
12 (*                                                                        *)
13 (**************************************************************************)
14
15 include "ground/notation/functions/upspoonstar_2.ma".
16 include "ground/arith/nat_succ_iter.ma".
17 include "ground/relocation/tr_pn.ma".
18
19 (* ITERATED PUSH FOR TOTAL RELOCATION MAPS **********************************)
20
21 definition tr_pushs (f:tr_map) (n:nat) ≝
22            (tr_push^n) f.
23
24 interpretation
25   "iterated push (total relocation maps)"
26   'UpSpoonStar n f = (tr_pushs f n).
27
28 (* Basic constructions ******************************************************)
29
30 lemma tr_pushs_zero:
31       ∀f. f = ⫯*[𝟎] f.
32 // qed.
33
34 lemma tr_pushs_push (n):
35       ∀f. ⫯⫯*[n] f = ⫯*[n] ⫯f.
36 #n #f @(niter_appl … tr_push)
37 qed.
38
39 lemma tr_pushs_succ (n):
40       ∀f. ⫯⫯*[n] f = ⫯*[↑n] f.
41 #f #n @(niter_succ … tr_push)
42 qed.
43
44 lemma tr_pushs_swap (n):
45       ∀f. ⫯*[n] ⫯f = ⫯*[↑n] f.
46 // qed.