--- /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_pushs.ma".
+include "ground/relocation/tr_pn_hdtl.ma".
+include "ground/lib/stream_tls.ma".
+
+(* ITERATED PUSH FOR TOTAL RELOCATION MAPS **********************************)
+
+(* Constructions with stream_tls ********************************************)
+
+lemma tr_tls_pushs (f) (n):
+ f = ⇂*[n]⫯*[n]f.
+#f #n @(nat_ind_succ … n) -n //
+#n #IH
+<stream_tls_swap <tr_pushs_succ <tr_tl_push //
+qed.
[ "tr_id ( 𝐢 ) " "tr_id_hdtl" "tr_id_pushs" "tr_id_tls" "tr_id_pap" "tr_id_compose" * ]
[ "tr_compose ( ?∘? )" "tr_compose_eq" "tr_compose_tls" "tr_compose_pn" "tr_compose_pushs" "tr_compose_pap" "tr_compose_compose" * ]
[ "tr_pap ( ?@⧣❨?❩ )" "tr_pap_eq" "tr_pap_hdtl" "tr_pap_hdtl_eq" "tr_pap_tls" "tr_pap_pat" "tr_pap_pn" "tr_pap_pushs" "tr_pap_pap" * ]
- [ "tr_pushs ( ⫯*[?]? )" * ]
+ [ "tr_pushs ( ⫯*[?]? )" "tr_pushs_tls" * ]
[ "tr_pn ( ⫯? ) ( ↑? )" "tr_pn_eq" "tr_pn_hdtl" "tr_pn_tls" * ]
[ "tr_map ( 𝐭❨?❩ )" "tr_eq" "tr_nexts" "tr_pat" "tr_ist" * ]
}