* #p #f //
qed.
-corec lemma tr_compose_id_dx (f):
- f ā fāš¢.
-cases tr_id_unfold
-cases tr_compose_unfold
-cases (pippo f) in ⢠(??%?);
-@stream_eq_cons /2 width=1 by/
-qed.
-
axiom pippo2 (f) (p):
f@āØpā© + (ā*[ninj p]f)@āØšā© = f@āØāpā©.
lemma stream_tls_swap (A) (n) (t):
(ā*[n]āt) = ā*{A}[ān]t.
// qed.
+
+(* Advanced constructions ***************************************************)
+
+lemma stream_tls_unit (A) (t):
+ āt = ā*{A}[š]t.
+// qed.
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+include "ground/relocation/tr_id_pap.ma".
+include "ground/relocation/tr_compose_pap.ma".
+include "ground/relocation/tr_pap_eq.ma".
+
+(* IDENTITY ELEMENT FOR TOTAL RELOCATION MAPS *******************************)
+
+(* Coonstructions with tr_compose *******************************************)
+
+lemma tr_compose_id_sn (f):
+ f ā š¢āf.
+#f @nstream_eq_inv_ext #q //
+qed.
+
+lemma tr_compose_id_dx (f):
+ f ā fāš¢.
+#f @nstream_eq_inv_ext #q //
+qed.
(**************************************************************************)
include "ground/relocation/tr_uni_pap.ma".
-include "ground/relocation/tr_compose_pap.ma".
-include "ground/relocation/tr_pap_eq.ma".
+include "ground/relocation/tr_id_compose.ma".
+include "ground/relocation/tr_compose_pn.ma".
+include "ground/lib/stream_hdtl_eq.ma".
(* UNIFORM ELEMENTS FOR TOTAL RELOCATION MAPS *******************************)
+(* Constructions with tr_compose and tr_tl **********************************)
+
+lemma tr_tl_compose_uni_sn (n) (f):
+ āf ā ā(š®āØnā©āf).
+#n @(nat_ind_succ ⦠n) -n //
+/2 width=1 by stream_tl_eq_repl/
+qed.
+
+(* Constructions with tr_compose and tr_tls *********************************)
+
+lemma tr_tl_compose_uni_dx (f) (n):
+ ā*[ān]f ā ā(fāš®āØnā©).
+// qed.
+
+lemma tr_tls_compose_uni_dx (f) (p) (n):
+ ā*[p+n]f ā ā*[p](fāš®āØnā©).
+#f #p elim p -p [| #p #IH ] #n
+[ <nrplus_unit_sn //
+| <nrplus_succ_sn >nsucc_inj >nsucc_inj
+ /2 width=3 by stream_tl_eq_repl/
+]
+qed.
+
(* Main constructions with tr_compose and tr_tls ****************************)
theorem tr_compose_uni_dx (f) (p):
]
[ { "total relocation" * } {
[ "tr_uni ( š®āØ?ā© )" "tr_uni_pap" "tr_uni_compose" * ]
- [ "tr_id ( š¢ ) " "tr_id_pushs" "tr_id_pap" * ]
+ [ "tr_id ( š¢ ) " "tr_id_pushs" "tr_id_pap" "tr_id_compose" * ]
[ "tr_compose ( ?ā? )" "tr_compose_eq" "tr_compose_tls" "tr_compose_pn" "tr_compose_pap" "tr_compose_compose" * ]
[ "tr_pap ( ?@�⩠)" "tr_pap_eq" "tr_pap_tls" "tr_pap_pat" "tr_pap_pn" "tr_pap_pushs" "tr_pap_pap" * ]
[ "tr_pushs ( ⫯*[?]? )" * ]