Step
*
2
2
of Lemma
nth-better-fibs
1. n : ℕ
⊢ (fst(s-nth(n;mk-stream(λp.let a,b = p in eval c = a + b in <b, c><fib(0), fib(0 + 1)>)))) = fib(n) ∈ ℤ
BY
{ (Assert ⌜∀i:ℕ. (s-nth(n;mk-stream(λp.let a,b = p in eval c = a + b in <b, c><fib(i), fib(i + 1)>)) = <fib(i + n), fib\000C((i + n) + 1)> ∈ (ℤ × ℤ))⌝⋅
   THEN Try ((InstHyp [⌜0⌝] (-1)⋅ THEN Auto THEN HypSubst' (-1) 0 THEN Reduce 0 THEN Auto))
   THEN NatInd (-1)
   THEN (RecUnfold `s-nth` 0 THEN RecUnfold `mk-stream` 0)
   THEN RepUR ``s-hd s-tl`` 0
   THEN Auto
   THEN AutoSplit) }
1
1. n : ℤ
2. n ≠ 0
3. 0 < n
4. ∀i:ℕ. (s-nth(n - 1;mk-stream(λp.let a,b = p in eval c = a + b in <b, c><fib(i), fib(i + 1)>)) = <fib(i + (n - 1)), f\000Cib((i + (n - 1)) + 1)> ∈ (ℤ × ℤ))
5. i : ℕ
⊢ eval m = n - 1 in
  s-nth(m;let y ⟵ eval c = fib(i) + fib(i + 1) in
                   <fib(i + 1), c>
          in mk-stream(λp.let a,b = p 
                          in eval c = a + b in
                             <b, c>y))
= <fib(i + n), fib((i + n) + 1)>
∈ (ℤ × ℤ)
Latex:
Latex:
1.  n  :  \mBbbN{}
\mvdash{}  (fst(s-nth(n;mk-stream(\mlambda{}p.let  a,b  =  p  in  eval  c  =  a  +  b  in  <b,  c><fib(0),  fib(0  +  1)>))))  =  fib(n\000C)
By
Latex:
(Assert  \mkleeneopen{}\mforall{}i:\mBbbN{}.  (s-nth(n;mk-stream(\mlambda{}p.let  a,b  =  p  in  eval  c  =  a  +  b  in  <b,  c><fib(i),  fib(i  +  1)>))  \000C=  <fib(i  +  n),  fib((i  +  n)  +  1)>)\mkleeneclose{}\mcdot{}
  THEN  Try  ((InstHyp  [\mkleeneopen{}0\mkleeneclose{}]  (-1)\mcdot{}  THEN  Auto  THEN  HypSubst'  (-1)  0  THEN  Reduce  0  THEN  Auto))
  THEN  NatInd  (-1)
  THEN  (RecUnfold  `s-nth`  0  THEN  RecUnfold  `mk-stream`  0)
  THEN  RepUR  ``s-hd  s-tl``  0
  THEN  Auto
  THEN  AutoSplit)
Home
Index