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 "delayed_updating/syntax/path.ma".
16 include "delayed_updating/notation/functions/power_2.ma".
17 include "ground/arith/nat_succ_iter.ma".
21 definition labels (l) (n:nat): path ā
22 ((list_lcons ? l)^n) (š).
26 'Power l n = (labels l n).
28 (* Basic constructions ******************************************************)
30 lemma labels_unfold (l) (n):
31 ((list_lcons ? l)^n) (š) = lāān.
34 lemma labels_zero (l):
38 lemma labels_succ (l) (n):
39 (lāān)āl = lāā(ān).
41 <labels_unfold <labels_unfold <niter_succ //
44 (* Basic inversions *********************************************************)
46 lemma eq_inv_empty_labels (l) (n):
47 (š) = lāān ā š = n.
48 #l #n @(nat_ind_succ ā¦ n) -n //
49 #n #_ <labels_succ #H0 destruct