let f, g be Function of [:the carrier of R,NAT :],the carrier of R; :: thesis: ( ( 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 ) )
; :: thesis: ( 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 ) )
; :: thesis: f = g
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; :: thesis: verum