let f, g be Function of [:the carrier of G,NAT :],the carrier of G; :: thesis: ( ( for x being Element of G holds
( f . x,0 = 0. G & ( for n being Element of NAT holds f . x,(n + 1) = x \ ((f . x,n) ` ) ) ) ) & ( for x being Element of G holds
( g . x,0 = 0. G & ( for n being Element of NAT holds g . x,(n + 1) = x \ ((g . x,n) ` ) ) ) ) implies f = g )

assume that
A9: for h being Element of G holds
( f . h,0 = 0. G & ( for n being Element of NAT holds f . h,(n + 1) = h \ ((f . h,n) ` ) ) ) and
A10: for h being Element of G holds
( g . h,0 = 0. G & ( for n being Element of NAT holds g . h,(n + 1) = h \ ((g . h,n) ` ) ) ) ; :: thesis: f = g
now
let h be Element of G; :: thesis: for n being Element of NAT holds f . h,n = g . h,n
let n be Element of NAT ; :: thesis: f . h,n = g . h,n
defpred S1[ Element of NAT ] means f . [h,$1] = g . [h,$1];
A11: now
let n be Element of NAT ; :: thesis: ( S1[n] implies S1[n + 1] )
assume A12: S1[n] ; :: thesis: S1[n + 1]
A13: g . [h,n] = g . h,n ;
f . [h,(n + 1)] = f . h,(n + 1)
.= h \ ((f . h,n) ` ) by A9
.= g . h,(n + 1) by A10, A12, A13
.= g . [h,(n + 1)] ;
hence S1[n + 1] ; :: thesis: verum
end;
f . [h,0 ] = f . h,0
.= 0. G by A9
.= g . h,0 by A10
.= g . [h,0 ] ;
then A14: S1[ 0 ] ;
for n being Element of NAT holds S1[n] from NAT_1:sch 1(A14, A11);
hence f . h,n = g . h,n ; :: thesis: verum
end;
hence f = g by BINOP_1:2; :: thesis: verum