Journal of Formalized Mathematics
Volume 14, 2002
University of Bialystok
Copyright (c) 2002 Association of Mizar Users

The abstract of the Mizar article:

Fibonacci Numbers

by
Robert M. Solovay

Received April 19, 2002

MML identifier: FIB_NUM
[ Mizar article, MML identifier index ]


environ

 vocabulary ARYTM, ARYTM_1, ARYTM_3, SQUARE_1, FUNCT_1, PRE_FF, FILTER_0,
      FUNCT_3, RELAT_1, ORDINAL2, FIB_NUM, ABSVALUE, POWER, SEQ_1, SEQ_2,
      SEQM_3, LATTICES, GROUP_1;
 notation ORDINAL1, NUMBERS, XCMPLX_0, XREAL_0, SQUARE_1, SEQ_1, NAT_1, INT_2,
      PRE_FF, SEQ_2, SEQM_3, LIMFUNC1, QUIN_1, ABSVALUE, PREPOWER, POWER;
 constructors REAL_1, NAT_1, PREPOWER, INT_2, SEQ_2, SEQM_3, PRE_FF, LIMFUNC1,
      QUIN_1, POWER, PARTFUN1, MEMBERED;
 clusters XREAL_0, SQUARE_1, QUIN_1, NEWTON, SEQ_1, RELSET_1, MEMBERED,
      ORDINAL2;
 requirements SUBSET, NUMERALS, REAL, ARITHM;


begin

:: Fibonacci commutes with gcd

:: The proof we present is a slight adaptation of the one found in
:: ``The Fibonacci Numbers'' by N. N. Vorobyov

reserve a,k,m, n, p,r,s for Nat;


:: Preliminary lemmas

theorem :: FIB_NUM:1
for m, n being Nat holds m hcf n = m hcf (n + m);

theorem :: FIB_NUM:2
 for k, m, n being Nat st k hcf m = 1 holds k hcf m * n = k hcf n;

theorem :: FIB_NUM:3
 for s being real number st s > 0
ex n being Nat st
(n > 0 & 0 < 1/n & 1/n <= s);

scheme Fib_Ind {P[Nat] } :
for k being Nat holds P[k]
    provided
 P[0] and
 P[1] and
 for k being Nat st P[k] & P[k+1] holds P[k+2];

scheme Bin_Ind { P[Nat,Nat] } :
for m, n  being Nat holds P[m, n]
    provided
     for m, n being Nat st P[m,n] holds P[n,m] and
     for k  being Nat st
        (for m, n  being Nat st (m < k & n < k) holds P[m,n])
        holds
        (for m  being Nat st m <= k holds P[k,m]);

theorem :: FIB_NUM:4
 for m, n being Nat holds
Fib(m + (n + 1)) = (Fib(n) * Fib (m)) +
                  (Fib(n + 1) * Fib (m + 1));

theorem :: FIB_NUM:5
  for m, n being Nat holds Fib(m) hcf Fib(n) = Fib(m hcf n);

begin

:: The relationship between the Fibonacci numbers and the
:: roots of the equation x^2 = x + 1

:: The formula for the roots of a quadratic equation

reserve x, a, b, c for real number;

theorem :: FIB_NUM:6
 for x, a, b, c being real number st
  (a <> 0 & delta(a,b,c) >= 0) holds

  (a * x^2 + b * x + c = 0) iff

   (x = (- b - sqrt delta(a,b,c))/(2 * a) or
    x = (- b + sqrt delta(a,b,c))/(2 * a));

:: The roots of x^2 - x - 1 = 0

:: The value of tau is approximately 1.618

definition
  func tau -> real number equals
:: FIB_NUM:def 1
   (1 + sqrt 5)/2;
end;

:: The value of tau_bar is approximately -.618

definition
  func tau_bar -> real number equals
:: FIB_NUM:def 2
   (1 - sqrt 5)/2;
end;

theorem :: FIB_NUM:7
   for n being Nat holds
  Fib(n) = ((tau to_power n) - (tau_bar to_power n))/(sqrt 5);

theorem :: FIB_NUM:8
   for n being Nat holds
     abs(Fib(n) - (tau to_power n)/(sqrt 5)) < 1;

reserve F, G, f, g, h for Real_Sequence;

:: Preliminary facts on real sequences

theorem :: FIB_NUM:9
 for F, G being Real_Sequence st
(for n being Nat holds F.n = G.n) holds F = G;

theorem :: FIB_NUM:10
 for f, g, h being Real_Sequence st g is_not_0 holds
(f /" g) (#) (g /" h) = (f /" h);

theorem :: FIB_NUM:11
 for f, g being Real_Sequence for n being Nat holds
(f /" g) . n = (f .n) / (g.n)
&
(f /" g) . n = (f.n) * (g.n)";

theorem :: FIB_NUM:12
  for F being Real_Sequence st
(for n being Nat holds F.n = Fib(n+1)/Fib(n))
holds
 F is convergent & lim F = tau;

Back to top