]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/lambdadelta/ground/relocation/tr_pn.ma
update from master branch
[helm.git] / matita / matita / contribs / lambdadelta / ground / relocation / tr_pn.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/relocation/tr_map.ma".
16
17 (* PUSH AND NEXT FOR TOTAL RELOCATION MAPS **********************************)
18
19 definition tr_push: tr_map → tr_map ≝
20            λf. 𝟏⨮f.
21
22 interpretation
23   "push (total relocation maps)"
24   'UpSpoon f = (tr_push f).
25
26 definition tr_next: tr_map → tr_map.
27 * #p #f @(↑p⨮f)
28 defined.
29
30 interpretation
31   "next (total relocation maps)"
32   'UpArrow f = (tr_next f).
33
34 (* Basic constructions ******************************************************)
35
36 lemma tr_push_unfold (f): 𝟏⨮f = ⫯f.
37 // qed.
38
39 lemma tr_next_unfold (f): ∀p. (↑p)⨮f = ↑(p⨮f).
40 // qed.
41
42 (* Constructions with tr_inj ************************************************)
43
44 lemma tr_inj_push (f): ⫯𝐭❨f❩ = 𝐭❨⫯f❩.
45 // qed.
46
47 lemma tr_inj_next (f): ↑𝐭❨f❩ = 𝐭❨↑f❩.
48 * //
49 qed.
50
51 (* Basic eliminations *******************************************************)
52
53 lemma tr_map_split (f:tr_map):
54       ∨∨ ∃g. ⫯g = f
55        | ∃g. ↑g = f.
56 * *
57 /3 width=2 by ex_intro, or_introl, or_intror/
58 qed-.