+ some additions and corrections
(**************************************************************************)
include "ground/arith/pnat_plus.ma".
(**************************************************************************)
include "ground/arith/pnat_plus.ma".
-include "ground/arith/nat_rplus.ma".
+include "ground/arith/nat_rplus_succ.ma".
(* RIGHT ADDITION FOR NON-NEGATIVE INTEGERS *********************************)
(* RIGHT ADDITION FOR NON-NEGATIVE INTEGERS *********************************)
lemma nrplus_inj_dx (p) (q):
p + q = p + ninj q.
// qed.
lemma nrplus_inj_dx (p) (q):
p + q = p + ninj q.
// qed.
+
+lemma nrplus_pplus_assoc (p,q:pnat) (n:nat):
+ (p+q)+n = p+(q+n).
+#p #q #n
+@(nat_ind_succ … n) -n // #n #IH
+<nrplus_succ_dx <nrplus_succ_dx <pplus_succ_dx //
+qed.
lemma nrplus_succ_shift (p) (n): ↑p + n = p + ↑n.
// qed.
lemma nrplus_succ_shift (p) (n): ↑p + n = p + ↑n.
// qed.
+lemma nrplus_succ_sn (p) (n): ↑(p+n) = ↑p + n.
+// qed.
+
lemma nrplus_unit_sn (n): ↑n = 𝟏 + n.
#n @(nat_ind_succ … n) -n //
qed.
lemma nrplus_unit_sn (n): ↑n = 𝟏 + n.
#n @(nat_ind_succ … n) -n //
qed.
(* Main constructions with tr_compose and tr_tls ****************************)
(* Main constructions with tr_compose and tr_tls ****************************)
-theorem tr_compose_uni_dx (f) (p):
- (𝐮❨f@❨p❩❩∘⇂*[p]f ≗ f∘𝐮❨p❩).
+theorem tr_compose_uni_dx (f) (n):
+ (𝐮❨f@❨n❩❩∘⇂*[n]f ≗ f∘𝐮❨n❩).
#f #p
@nstream_eq_inv_ext #q
<tr_compose_pap <tr_compose_pap
#f #p
@nstream_eq_inv_ext #q
<tr_compose_pap <tr_compose_pap