let f be Function; for n, m being Element of NAT holds (iter (f,n)) * (iter (f,m)) = iter (f,(n + m))
let n, m be Element of NAT ; (iter (f,n)) * (iter (f,m)) = iter (f,(n + m))
defpred S1[ Element of NAT ] means (iter (f,n)) * (iter (f,$1)) = iter (f,(n + $1));
A1:
for k being Element of NAT st S1[k] holds
S1[k + 1]
proof
let k be
Element of
NAT ;
( S1[k] implies S1[k + 1] )
assume A2:
(iter (f,n)) * (iter (f,k)) = iter (
f,
(n + k))
;
S1[k + 1]
thus (iter (f,n)) * (iter (f,(k + 1))) =
(iter (f,n)) * ((iter (f,k)) * f)
by Th71
.=
((iter (f,n)) * (iter (f,k))) * f
by RELAT_1:55
.=
iter (
f,
((n + k) + 1))
by A2, Th71
.=
iter (
f,
(n + (k + 1)))
;
verum
end;
(iter (f,n)) * (iter (f,0)) =
(iter (f,n)) * (id ((dom f) \/ (rng f)))
by Th70
.=
iter (f,(n + 0))
by Th77
;
then A3:
S1[ 0 ]
;
for k being Element of NAT holds S1[k]
from NAT_1:sch 1(A3, A1);
hence
(iter (f,n)) * (iter (f,m)) = iter (f,(n + m))
; verum