let f, g be Function of [:the carrier of R,NAT :],the carrier of R; ( ( for a being Element of R holds
( f . a,0 = 0. R & ( for n being Element of NAT holds f . a,(n + 1) = (f . a,n) + a ) ) ) & ( for a being Element of R holds
( g . a,0 = 0. R & ( for n being Element of NAT holds g . a,(n + 1) = (g . a,n) + a ) ) ) implies f = g )
assume A13:
for a being Element of R holds
( f . a,0 = 0. R & ( for n being Element of NAT holds f . a,(n + 1) = (f . a,n) + a ) )
; ( ex a being Element of R st
( g . a,0 = 0. R implies ex n being Element of NAT st not g . a,(n + 1) = (g . a,n) + a ) or f = g )
defpred S1[ Element of NAT ] means for a being Element of R holds f . a,$1 = g . a,$1;
assume A14:
for a being Element of R holds
( g . a,0 = 0. R & ( for n being Element of NAT holds g . a,(n + 1) = (g . a,n) + a ) )
; f = g
A15:
now let n be
Element of
NAT ;
( S1[n] implies S1[n + 1] )assume A16:
S1[
n]
;
S1[n + 1]hence
S1[
n + 1]
;
verum end;
A17:
S1[ 0 ]
A18:
for n being Element of NAT holds S1[n]
from NAT_1:sch 1(A17, A15);
( dom f = [:the carrier of R,NAT :] & dom g = [:the carrier of R,NAT :] )
by FUNCT_2:def 1;
hence
f = g
by A19, FUNCT_1:9; verum