1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 include "ground/relocation/pr_nexts.ma".
16 include "ground/relocation/pr_tls_eq.ma".
18 (* ITERATED TAIL FOR PARTIAL RELOCATION MAPS ********************************)
20 (* Inversions with pr_nexts and pr_eq ***************************************)
22 (*** eq_inv_nexts_sn *)
23 lemma pr_eq_inv_nexts_sn (n):
24 ∀f1,g2. ↑*[n] f1 ≡ g2 →
25 ∧∧ f1 ≡ ⫰*[n]g2 & ↑*[n]⫰*[n]g2 = g2.
26 #n @(nat_ind_succ … n) -n /2 width=1 by conj/
28 elim (pr_eq_inv_next_sn … H) -H [|*: // ] #Hf10 *
29 elim (IH … Hf10) -IH -Hf10 #Hf12 #H2
30 <pr_tls_succ /2 width=1 by conj/
33 (*** eq_inv_nexts_dx *)
34 lemma pr_eq_inv_nexts_dx (n):
35 ∀f2,g1. g1 ≡ ↑*[n] f2 →
36 ∧∧ ⫰*[n]g1 ≡ f2 & ↑*[n]⫰*[n]g1 = g1.
37 #n @(nat_ind_succ … n) -n /2 width=1 by conj/
39 elim (pr_eq_inv_next_dx … H) -H [|*: // ] #Hf02 *
40 elim (IH … Hf02) -IH -Hf02 #Hf12 #H2
41 <pr_tls_succ /2 width=1 by conj/