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 A12:
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 )
assume A13:
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
defpred S1[ Element of NAT ] means for a being Element of R holds f . a,$1 = g . a,$1;
A14:
S1[ 0 ]
A17:
for n being Element of NAT holds S1[n]
from NAT_1:sch 1(A14, A15);
A18:
dom f = [:the carrier of R,NAT :]
by FUNCT_2:def 1;
A19:
dom g = [:the carrier of R,NAT :]
by FUNCT_2:def 1;
hence
f = g
by A18, A19, FUNCT_1:9; :: thesis: verum