let f, g be Function of [:NAT, the carrier of R:], the carrier of R; ( ( 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)) ) )
; ( 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)) ) )
; f = g
A4:
now let n be
Element of
NAT ;
( S1[n] implies S1[n + 1] )assume A5:
S1[
n]
;
S1[n + 1]now let a be
Element of
R;
f . ((n + 1),a) = g . ((n + 1),a)thus f . (
(n + 1),
a) =
a + (f . (n,a))
by A2
.=
a + (g . (n,a))
by A5
.=
g . (
(n + 1),
a)
by A3
;
verum end; hence
S1[
n + 1]
;
verum end;
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:2; verum