:: PRE_FF semantic presentation
definition
let n be
Element of
NAT ;
func Fib c1 -> Element of
NAT means :
Def1:
:: PRE_FF:def 1
ex
fib being
Function of
NAT ,
[:NAT ,NAT :] st
(
it = (fib . n) `1 &
fib . 0
= [0,1] & ( for
n being
Element of
NAT holds
fib . (n + 1) = [((fib . n) `2 ),(((fib . n) `1 ) + ((fib . n) `2 ))] ) );
existence
ex b1 being Element of NAT ex fib being Function of NAT ,[:NAT ,NAT :] st
( b1 = (fib . n) `1 & fib . 0 = [0,1] & ( for n being Element of NAT holds fib . (n + 1) = [((fib . n) `2 ),(((fib . n) `1 ) + ((fib . n) `2 ))] ) )
uniqueness
for b1, b2 being Element of NAT st ex fib being Function of NAT ,[:NAT ,NAT :] st
( b1 = (fib . n) `1 & fib . 0 = [0,1] & ( for n being Element of NAT holds fib . (n + 1) = [((fib . n) `2 ),(((fib . n) `1 ) + ((fib . n) `2 ))] ) ) & ex fib being Function of NAT ,[:NAT ,NAT :] st
( b2 = (fib . n) `1 & fib . 0 = [0,1] & ( for n being Element of NAT holds fib . (n + 1) = [((fib . n) `2 ),(((fib . n) `1 ) + ((fib . n) `2 ))] ) ) holds
b1 = b2
end;
:: deftheorem Def1 defines Fib PRE_FF:def 1 :
theorem Th1: :: PRE_FF:1
theorem Th2: :: PRE_FF:2
theorem Th3: :: PRE_FF:3
theorem Th4: :: PRE_FF:4
theorem Th5: :: PRE_FF:5
theorem Th6: :: PRE_FF:6
theorem Th7: :: PRE_FF:7
theorem Th8: :: PRE_FF:8
canceled;
theorem Th9: :: PRE_FF:9
canceled;
theorem Th10: :: PRE_FF:10
theorem Th11: :: PRE_FF:11
theorem Th12: :: PRE_FF:12
theorem Th13: :: PRE_FF:13
theorem Th14: :: PRE_FF:14
theorem Th15: :: PRE_FF:15
theorem Th16: :: PRE_FF:16
defpred S1[ Element of NAT , FinSequence of NAT , set ] means ( ( for k being Element of NAT st a1 + 2 = 2 * k holds
a3 = a2 ^ <*(a2 /. k)*> ) & ( for k being Element of NAT st a1 + 2 = (2 * k) + 1 holds
a3 = a2 ^ <*((a2 /. k) + (a2 /. (k + 1)))*> ) );
Lemma66:
for n being Element of NAT
for x being Element of NAT * ex y being Element of NAT * st S1[n,x,y]
defpred S2[ Element of NAT , FinSequence of NAT , set ] means ( ( for k being Element of NAT st a1 + 2 = 2 * k holds
a3 = a2 ^ <*(a2 /. k)*> ) & ( for k being Element of NAT st a1 + 2 = (2 * k) + 1 holds
a3 = a2 ^ <*((a2 /. k) + (a2 /. (k + 1)))*> ) );
Lemma69:
for n being Element of NAT
for x, y1, y2 being Element of NAT * st S2[n,x,y1] & S2[n,x,y2] holds
y1 = y2
reconsider single1 = <*1*> as Element of NAT * by FINSEQ_1:def 11;
consider fusc being Function of NAT ,NAT * such that
Lemma74:
fusc . 0 = single1
and
Lemma75:
for n being Element of NAT holds S1[n,fusc . n,fusc . (n + 1)]
from RECDEF_1:sch 2();
:: deftheorem Def2 defines Fusc PRE_FF:def 2 :
theorem Th17: :: PRE_FF:17
theorem Th18: :: PRE_FF:18
theorem Th19: :: PRE_FF:19
theorem Th20: :: PRE_FF:20
theorem Th21: :: PRE_FF:21
theorem Th22: :: PRE_FF:22