let f, g be Function of [:NAT ,the carrier of R:],the carrier of R; :: thesis: ( ( for a being Element of R holds
( f . 0 ,a = 0. R & ( for n being Element of NAT holds f . (n + 1),a = a + (f . n,a) ) ) ) & ( for a being Element of R holds
( g . 0 ,a = 0. R & ( for n being Element of NAT holds g . (n + 1),a = a + (g . n,a) ) ) ) implies f = g )
assume A2:
for a being Element of R holds
( f . 0 ,a = 0. R & ( for n being Element of NAT holds f . (n + 1),a = a + (f . n,a) ) )
; :: thesis: ( ex a being Element of R st
( g . 0 ,a = 0. R implies ex n being Element of NAT st not g . (n + 1),a = a + (g . n,a) ) or f = g )
defpred S1[ Element of NAT ] means for a being Element of R holds f . $1,a = g . $1,a;
assume A3:
for a being Element of R holds
( g . 0 ,a = 0. R & ( for n being Element of NAT holds g . (n + 1),a = a + (g . n,a) ) )
; :: thesis: f = g
A6:
S1[ 0 ]
A7:
for n being Element of NAT holds S1[n]
from NAT_1:sch 1(A6, A4);
( dom f = [:NAT ,the carrier of R:] & dom g = [:NAT ,the carrier of R:] )
by FUNCT_2:def 1;
hence
f = g
by A8, FUNCT_1:9; :: thesis: verum