Article PRE_FF, MML version 4.99.1005
:: PRE_FF:funcnot 1 => PRE_FF:func 1
definition
let a1, a2 be non empty set;
let a3 be non empty Element of bool a1;
let a4 be non empty Element of bool a2;
let a5 be Element of [:a3,a4:];
redefine func a5 `1 -> Element of a3;
end;
:: PRE_FF:funcnot 2 => PRE_FF:func 2
definition
let a1, a2 be non empty set;
let a3 be non empty Element of bool a1;
let a4 be non empty Element of bool a2;
let a5 be Element of [:a3,a4:];
redefine func a5 `2 -> Element of a4;
end;
:: PRE_FF:funcnot 3 => PRE_FF:func 3
definition
let a1 be natural set;
func Fib A1 -> Element of NAT means
ex b1 being Function-like quasi_total Relation of NAT,[:NAT,NAT:] st
it = (b1 . a1) `1 &
b1 . 0 = [0,1] &
(for b2 being natural set holds
b1 . (b2 + 1) = [(b1 . b2) `2,(b1 . b2) `1 + ((b1 . b2) `2)]);
end;
:: PRE_FF:def 1
theorem
for b1 being natural set
for b2 being Element of NAT holds
b2 = Fib b1
iff
ex b3 being Function-like quasi_total Relation of NAT,[:NAT,NAT:] st
b2 = (b3 . b1) `1 &
b3 . 0 = [0,1] &
(for b4 being natural set holds
b3 . (b4 + 1) = [(b3 . b4) `2,(b3 . b4) `1 + ((b3 . b4) `2)]);
:: PRE_FF:th 1
theorem
Fib 0 = 0 &
Fib 1 = 1 &
(for b1 being natural set holds
Fib ((b1 + 1) + 1) = (Fib b1) + Fib (b1 + 1));
:: PRE_FF:th 2
theorem
for b1 being integer set holds
b1 div 1 = b1;
:: PRE_FF:th 3
theorem
for b1, b2 being integer set
st 0 < b2 & b1 div b2 = 0
holds b1 < b2;
:: PRE_FF:th 4
theorem
for b1, b2 being integer set
st 0 <= b1 & b1 < b2
holds b1 div b2 = 0;
:: PRE_FF:th 5
theorem
for b1, b2, b3 being integer set
st 0 < b2 & 0 < b3
holds (b1 div b2) div b3 = b1 div (b2 * b3);
:: PRE_FF:th 6
theorem
for b1 being integer set
st b1 mod 2 <> 0
holds b1 mod 2 = 1;
:: PRE_FF:th 7
theorem
for b1 being integer set
st b1 is Element of NAT
holds b1 div 2 is Element of NAT;
:: PRE_FF:th 10
theorem
for b1, b2, b3 being real set
st b1 <= b2 & 1 < b3
holds b3 to_power b1 <= b3 to_power b2;
:: PRE_FF:th 11
theorem
for b1, b2 being real set
st b2 <= b1
holds [\b2/] <= [\b1/];
:: PRE_FF:th 12
theorem
for b1, b2, b3 being real set
st 1 < b1 & 0 < b2 & b2 <= b3
holds log(b1,b2) <= log(b1,b3);
:: PRE_FF:th 13
theorem
for b1 being natural set
st 0 < b1
holds [\log(2,2 * b1)/] + 1 <> [\log(2,(2 * b1) + 1)/];
:: PRE_FF:th 14
theorem
for b1 being natural set
st 0 < b1
holds [\log(2,(2 * b1) + 1)/] <= [\log(2,2 * b1)/] + 1;
:: PRE_FF:th 15
theorem
for b1 being natural set
st 0 < b1
holds [\log(2,2 * b1)/] = [\log(2,(2 * b1) + 1)/];
:: PRE_FF:th 16
theorem
for b1 being natural set
st 0 < b1
holds [\log(2,b1)/] + 1 = [\log(2,(2 * b1) + 1)/];
:: PRE_FF:funcnot 4 => PRE_FF:func 4
definition
let a1 be Function-like quasi_total Relation of NAT,NAT *;
let a2 be Element of NAT;
redefine func a1 . a2 -> FinSequence of NAT;
end;
:: PRE_FF:funcnot 5 => PRE_FF:func 5
definition
let a1 be natural set;
func Fusc A1 -> Element of NAT means
it = 0
if a1 = 0
otherwise ex b1 being Element of NAT st
ex b2 being Function-like quasi_total Relation of NAT,NAT * st
b1 + 1 = a1 &
it = (b2 . b1) /. a1 &
b2 . 0 = <*1*> &
(for b3 being natural set holds
(for b4 being natural set
st b3 + 2 = 2 * b4
holds b2 . (b3 + 1) = (b2 . b3) ^ <*(b2 . b3) /. b4*>) &
(for b4 being natural set
st b3 + 2 = (2 * b4) + 1
holds b2 . (b3 + 1) = (b2 . b3) ^ <*((b2 . b3) /. b4) + ((b2 . b3) /. (b4 + 1))*>));
end;
:: PRE_FF:def 2
theorem
for b1 being natural set
for b2 being Element of NAT holds
(b1 = 0 implies (b2 = Fusc b1
iff
b2 = 0)) &
(b1 = 0 or (b2 = Fusc b1
iff
ex b3 being Element of NAT st
ex b4 being Function-like quasi_total Relation of NAT,NAT * st
b3 + 1 = b1 &
b2 = (b4 . b3) /. b1 &
b4 . 0 = <*1*> &
(for b5 being natural set holds
(for b6 being natural set
st b5 + 2 = 2 * b6
holds b4 . (b5 + 1) = (b4 . b5) ^ <*(b4 . b5) /. b6*>) &
(for b6 being natural set
st b5 + 2 = (2 * b6) + 1
holds b4 . (b5 + 1) = (b4 . b5) ^ <*((b4 . b5) /. b6) + ((b4 . b5) /. (b6 + 1))*>))));
:: PRE_FF:th 17
theorem
Fusc 0 = 0 &
Fusc 1 = 1 &
(for b1 being natural set holds
Fusc (2 * b1) = Fusc b1 &
Fusc ((2 * b1) + 1) = (Fusc b1) + Fusc (b1 + 1));
:: PRE_FF:th 18
theorem
for b1, b2 being natural set
st b1 <> 0 & b1 = 2 * b2
holds b2 < b1;
:: PRE_FF:th 19
theorem
for b1, b2 being natural set
st b1 = (2 * b2) + 1
holds b2 < b1;
:: PRE_FF:th 20
theorem
for b1, b2 being natural set holds
b2 = (b1 * Fusc 0) + (b2 * Fusc (0 + 1));
:: PRE_FF:th 21
theorem
for b1, b2, b3, b4, b5 being natural set
st b1 = (2 * b2) + 1 &
Fusc b5 = (b3 * Fusc b1) + (b4 * Fusc (b1 + 1))
holds Fusc b5 = (b3 * Fusc b2) + ((b4 + b3) * Fusc (b2 + 1));
:: PRE_FF:th 22
theorem
for b1, b2, b3, b4, b5 being natural set
st b1 = 2 * b2 &
Fusc b5 = (b3 * Fusc b1) + (b4 * Fusc (b1 + 1))
holds Fusc b5 = ((b3 + b4) * Fusc b2) + (b4 * Fusc (b2 + 1));