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/nec_r_1.ma".
18 (* REVERSE FOR PATH *********************************************************)
20 rec definition reverse (p) on p: path ≝
23 | list_lcons l q ⇒ (reverse q)◖l
28 'NEcR p = (reverse p).
30 (* Basic constructions ******************************************************)
32 lemma reverse_empty: 𝐞 = 𝐞ᴿ.
35 lemma reverse_lcons (p) (l): pᴿ◖l = (l◗p)ᴿ.
38 (* Main constructions *******************************************************)
40 theorem reverse_append (p1) (p2):
41 (p2ᴿ)●(p1ᴿ) = (p1●p2)ᴿ.
44 <list_append_lcons_sn <reverse_lcons <reverse_lcons //
47 (* Constructions with list_rcons ********************************************)
49 lemma reverse_rcons (p) (l):
55 (* Main constructions *******************************************************)
57 theorem reverse_reverse (p):
61 <reverse_lcons <reverse_rcons //