let f be Function; :: thesis: 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 ; :: thesis: (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 ; :: thesis: ( S1[k] implies S1[k + 1] )
assume A2: (iter f,n) * (iter f,k) = iter f,(n + k) ; :: thesis: 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)) ; :: thesis: 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) ; :: thesis: verum