defpred S1[ set , set , set ] means for z being set st z = $2 holds
$3 = F3($1,z);
A1:
for n being Nat
for x being set ex y being set st S1[n,x,y]
proof
let n be
Nat;
for x being set ex y being set st S1[n,x,y]let x be
set ;
ex y being set st S1[n,x,y]
take
F3(
n,
x)
;
S1[n,x,F3(n,x)]
thus
S1[
n,
x,
F3(
n,
x)]
;
verum
end;
A2:
for n being Nat
for x, y1, y2 being set st S1[n,x,y1] & S1[n,x,y2] holds
y1 = y2
proof
let n be
Nat;
for x, y1, y2 being set st S1[n,x,y1] & S1[n,x,y2] holds
y1 = y2let x,
y1,
y2 be
set ;
( S1[n,x,y1] & S1[n,x,y2] implies y1 = y2 )
assume that A3:
for
z being
set st
z = x holds
y1 = F3(
n,
z)
and A4:
for
z being
set st
z = x holds
y2 = F3(
n,
z)
;
y1 = y2
thus y1 =
F3(
n,
x)
by A3
.=
y2
by A4
;
verum
end;
A5:
( ex y being set ex f being Function st
( y = f . F2() & dom f = NAT & f . 0 = F1() & ( for n being Nat holds S1[n,f . n,f . (n + 1)] ) ) & ( for y1, y2 being set st ex f being Function st
( y1 = f . F2() & dom f = NAT & f . 0 = F1() & ( for n being Nat holds S1[n,f . n,f . (n + 1)] ) ) & ex f being Function st
( y2 = f . F2() & dom f = NAT & f . 0 = F1() & ( for n being Nat holds S1[n,f . n,f . (n + 1)] ) ) holds
y1 = y2 ) )
from RECDEF_1:sch 11(A1, A2);
then consider y being set , f being Function such that
A6:
( y = f . F2() & dom f = NAT & f . 0 = F1() & ( for n being Nat holds S1[n,f . n,f . (n + 1)] ) )
;
thus
ex y being set ex f being Function st
( y = f . F2() & dom f = NAT & f . 0 = F1() & ( for n being Nat holds f . (n + 1) = F3(n,(f . n)) ) )
for y1, y2 being set st ex f being Function st
( y1 = f . F2() & dom f = NAT & f . 0 = F1() & ( for n being Nat holds f . (n + 1) = F3(n,(f . n)) ) ) & ex f being Function st
( y2 = f . F2() & dom f = NAT & f . 0 = F1() & ( for n being Nat holds f . (n + 1) = F3(n,(f . n)) ) ) holds
y1 = y2proof
take
y
;
ex f being Function st
( y = f . F2() & dom f = NAT & f . 0 = F1() & ( for n being Nat holds f . (n + 1) = F3(n,(f . n)) ) )
take
f
;
( y = f . F2() & dom f = NAT & f . 0 = F1() & ( for n being Nat holds f . (n + 1) = F3(n,(f . n)) ) )
thus
(
y = f . F2() &
dom f = NAT &
f . 0 = F1() & ( for
n being
Nat holds
f . (n + 1) = F3(
n,
(f . n)) ) )
by A6;
verum
end;
let y1, y2 be set ; ( ex f being Function st
( y1 = f . F2() & dom f = NAT & f . 0 = F1() & ( for n being Nat holds f . (n + 1) = F3(n,(f . n)) ) ) & ex f being Function st
( y2 = f . F2() & dom f = NAT & f . 0 = F1() & ( for n being Nat holds f . (n + 1) = F3(n,(f . n)) ) ) implies y1 = y2 )
given f1 being Function such that A7:
( y1 = f1 . F2() & dom f1 = NAT & f1 . 0 = F1() )
and
A8:
for n being Nat holds f1 . (n + 1) = F3(n,(f1 . n))
; ( for f being Function holds
( not y2 = f . F2() or not dom f = NAT or not f . 0 = F1() or ex n being Nat st not f . (n + 1) = F3(n,(f . n)) ) or y1 = y2 )
A9:
for n being Nat holds S1[n,f1 . n,f1 . (n + 1)]
by A8;
given f2 being Function such that A10:
( y2 = f2 . F2() & dom f2 = NAT & f2 . 0 = F1() )
and
A11:
for n being Nat holds f2 . (n + 1) = F3(n,(f2 . n))
; y1 = y2
for n being Nat holds S1[n,f2 . n,f2 . (n + 1)]
by A11;
hence
y1 = y2
by A5, A7, A10, A9; verum