deffunc H1( set , Element of [:NAT,NAT:]) -> Element of [:NAT,NAT:] = [($2 `2),(($2 `1) + ($2 `2))];
consider fib being Function of NAT,[:NAT,NAT:] such that
A1:
fib . 0 = [0,1]
and
A2:
for n being Nat holds fib . (n + 1) = H1(n,fib . n)
from NAT_1:sch 12();
thus Fib 0 =
[0,1] `1
by A1, A2, Def1
.=
0
by MCART_1:7
; ( Fib 1 = 1 & ( for n being Nat holds Fib ((n + 1) + 1) = (Fib n) + (Fib (n + 1)) ) )
thus Fib 1 =
(fib . (0 + 1)) `1
by A1, A2, Def1
.=
[((fib . 0) `2),(((fib . 0) `1) + ((fib . 0) `2))] `1
by A2
.=
[0,1] `2
by A1, MCART_1:7
.=
1
by MCART_1:7
; for n being Nat holds Fib ((n + 1) + 1) = (Fib n) + (Fib (n + 1))
let n be Nat; Fib ((n + 1) + 1) = (Fib n) + (Fib (n + 1))
reconsider n = n as Element of NAT by ORDINAL1:def 13;
A3: (fib . (n + 1)) `1 =
[((fib . n) `2),(((fib . n) `1) + ((fib . n) `2))] `1
by A2
.=
(fib . n) `2
by MCART_1:7
;
Fib ((n + 1) + 1) =
(fib . ((n + 1) + 1)) `1
by A1, A2, Def1
.=
[((fib . (n + 1)) `2),(((fib . (n + 1)) `1) + ((fib . (n + 1)) `2))] `1
by A2
.=
(fib . (n + 1)) `2
by MCART_1:7
.=
[((fib . n) `2),(((fib . n) `1) + ((fib . n) `2))] `2
by A2
.=
((fib . n) `1) + ((fib . (n + 1)) `1)
by A3, MCART_1:7
.=
(Fib n) + ((fib . (n + 1)) `1)
by A1, A2, Def1
.=
(Fib n) + (Fib (n + 1))
by A1, A2, Def1
;
hence
Fib ((n + 1) + 1) = (Fib n) + (Fib (n + 1))
; verum