/-
Copyright 2026 The Formal Conjectures Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-/
import FormalConjecturesUtilInfinitude of Pell number primes
References:
The Pell numbers $P_n$ are defined by $P_0 = 0$, $P_1 = 1$, $P_{n+2} = 2*P_{n+1} + P_n$. OEIS A129
The conjecture says that there are infinitely many prime Pell numbers.
namespace PellNumbersThe Pell numbers $P_n$ are defined by $P_0 = 0$, $P_1 = 1$, $P_{n+2} = 2*P_{n+1} + P_n$
def pellNumber : ℕ → ℕ
| 0 => 0
| 1 => 1
| n + 1 + 1 => 2 * pellNumber (n + 1) + pellNumber n@[category test, AMS 11]
theorem pellNumber_zero : pellNumber 0 = 0 := rfl@[category test, AMS 11]
theorem pellNumber_one : pellNumber 1 = 1 := rfl@[category test, AMS 11]
theorem pellNumber_two : pellNumber 2 = 2 := rfl@[category test, AMS 11]
theorem pellNumber_five : pellNumber 5 = 29 := rflSimilar to Fibonacci numbers, there exist numerous identities around Pell numbers, i.e. P_{2n+1} = P_n ^ 2 + P_{n+1} ^ 2
succ n:ℕk:ℕhA:pellNumber (2 * k + 1) = pellNumber k ^ 2 + pellNumber (k + 1) ^ 2hB:pellNumber (2 * k + 2) = 2 * pellNumber (k + 1) * (pellNumber k + pellNumber (k + 1))hstep1:pellNumber (2 * (k + 1) + 1) = 2 * pellNumber (2 * k + 2) + pellNumber (2 * k + 1)hstep2:pellNumber (2 * (k + 1) + 2) = 2 * pellNumber (2 * (k + 1) + 1) + pellNumber (2 * k + 2)hk2:pellNumber (k + 2) = 2 * pellNumber (k + 1) + pellNumber khA':pellNumber (2 * (k + 1) + 1) = pellNumber (k + 1) ^ 2 + pellNumber (k + 2) ^ 2⊢ 2 * (pellNumber (k + 1) ^ 2 + (2 * pellNumber (k + 1) + pellNumber k) ^ 2) +
2 * pellNumber (k + 1) * (pellNumber k + pellNumber (k + 1)) =
2 * (2 * pellNumber (k + 1) + pellNumber k) * (pellNumber (k + 1) + (2 * pellNumber (k + 1) + pellNumber k)); ring All goals completed! 🐙An explicit formula for Pell numbers, similar to Binet's formula
@[category textbook, AMS 11]
theorem coe_pellNumber_eq : ∀ n, (pellNumber n : ℝ) = ((1 + √2) ^ n - (1 - √2) ^ n) / (2 * √2) := by ⊢ ∀ (n : ℕ), ↑(pellNumber n) = ((1 + √2) ^ n - (1 - √2) ^ n) / (2 * √2)
-- The characteristic polynomial of the Pell recursion is $x^2 = 2x + 1$, with
-- roots $\alpha = 1 + \sqrt{2}$ and $\beta = 1 - \sqrt{2}$. The function
-- $f(n) = (\alpha^n - \beta^n) / (2\sqrt{2})$ satisfies the same recursion
-- and the same base cases, so it agrees with the cast of `pellNumber`.
set α : ℝ := 1 + √2 with hα_def α:ℝ := 1 + √2hα_def:α = 1 + √2⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - (1 - √2) ^ n) / (2 * √2)
set β : ℝ := 1 - √2 with hβ_def α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2)
-- Basic facts about α and β.
have hsq2 : (√2 : ℝ) ^ 2 = 2 := Real.sq_sqrt (by α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2⊢ 0 ≤ 2 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2) norm_num All goals completed! 🐙 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2)) α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2)
have hα_sq : α ^ 2 = 2 * α + 1 := by ⊢ ∀ (n : ℕ), ↑(pellNumber n) = ((1 + √2) ^ n - (1 - √2) ^ n) / (2 * √2) α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2) rw [hα_def α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2⊢ (1 + √2) ^ 2 = 2 * (1 + √2) + 1 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2⊢ (1 + √2) ^ 2 = 2 * (1 + √2) + 1 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2)] α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2⊢ (1 + √2) ^ 2 = 2 * (1 + √2) + 1 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2); ring_nf α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2⊢ 1 + √2 * 2 + √2 ^ 2 = 3 + √2 * 2 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2); linarith [hsq2] α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2) α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2)
have hβ_sq : β ^ 2 = 2 * β + 1 := by ⊢ ∀ (n : ℕ), ↑(pellNumber n) = ((1 + √2) ^ n - (1 - √2) ^ n) / (2 * √2) α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2) rw [hβ_def α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1⊢ (1 - √2) ^ 2 = 2 * (1 - √2) + 1 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1⊢ (1 - √2) ^ 2 = 2 * (1 - √2) + 1 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2)] α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1⊢ (1 - √2) ^ 2 = 2 * (1 - √2) + 1 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2); ring_nf α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1⊢ 1 - √2 * 2 + √2 ^ 2 = 3 - √2 * 2 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2); linarith [hsq2] α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2) α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2)
have h2sq2_ne : (2 * √2 : ℝ) ≠ 0 :=
mul_ne_zero two_ne_zero (Real.sqrt_ne_zero'.mpr (by α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1⊢ 0 < 2 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2) norm_num All goals completed! 🐙 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2))) α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2)
-- The characteristic-poly identity lifts to $x^{n+2} = 2 x^{n+1} + x^n$.
have hα_rec : ∀ n, α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ n := by ⊢ ∀ (n : ℕ), ↑(pellNumber n) = ((1 + √2) ^ n - (1 - √2) ^ n) / (2 * √2) α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2)
intro n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0n:ℕ⊢ α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2)
have : α ^ (n + 2) = α ^ n * α ^ 2 := by ⊢ ∀ (n : ℕ), ↑(pellNumber n) = ((1 + √2) ^ n - (1 - √2) ^ n) / (2 * √2) α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0n:ℕthis:α ^ (n + 2) = α ^ n * α ^ 2⊢ α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2) ring α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0n:ℕthis:α ^ (n + 2) = α ^ n * α ^ 2⊢ α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2) α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0n:ℕthis:α ^ (n + 2) = α ^ n * α ^ 2⊢ α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2)
rw [this, α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0n:ℕthis:α ^ (n + 2) = α ^ n * α ^ 2⊢ α ^ n * α ^ 2 = 2 * α ^ (n + 1) + α ^ n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0n:ℕthis:α ^ (n + 2) = α ^ n * α ^ 2⊢ α ^ n * (2 * α + 1) = 2 * α ^ (n + 1) + α ^ n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2) hα_sq α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0n:ℕthis:α ^ (n + 2) = α ^ n * α ^ 2⊢ α ^ n * (2 * α + 1) = 2 * α ^ (n + 1) + α ^ n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0n:ℕthis:α ^ (n + 2) = α ^ n * α ^ 2⊢ α ^ n * (2 * α + 1) = 2 * α ^ (n + 1) + α ^ n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2)] α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0n:ℕthis:α ^ (n + 2) = α ^ n * α ^ 2⊢ α ^ n * (2 * α + 1) = 2 * α ^ (n + 1) + α ^ n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2); ring α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2) α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2)
have hβ_rec : ∀ n, β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n := by ⊢ ∀ (n : ℕ), ↑(pellNumber n) = ((1 + √2) ^ n - (1 - √2) ^ n) / (2 * √2) α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2)
intro n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nn:ℕ⊢ β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2)
have : β ^ (n + 2) = β ^ n * β ^ 2 := by ⊢ ∀ (n : ℕ), ↑(pellNumber n) = ((1 + √2) ^ n - (1 - √2) ^ n) / (2 * √2) α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nn:ℕthis:β ^ (n + 2) = β ^ n * β ^ 2⊢ β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2) ring α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nn:ℕthis:β ^ (n + 2) = β ^ n * β ^ 2⊢ β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2) α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nn:ℕthis:β ^ (n + 2) = β ^ n * β ^ 2⊢ β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2)
rw [this, α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nn:ℕthis:β ^ (n + 2) = β ^ n * β ^ 2⊢ β ^ n * β ^ 2 = 2 * β ^ (n + 1) + β ^ n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nn:ℕthis:β ^ (n + 2) = β ^ n * β ^ 2⊢ β ^ n * (2 * β + 1) = 2 * β ^ (n + 1) + β ^ n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2) hβ_sq α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nn:ℕthis:β ^ (n + 2) = β ^ n * β ^ 2⊢ β ^ n * (2 * β + 1) = 2 * β ^ (n + 1) + β ^ n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nn:ℕthis:β ^ (n + 2) = β ^ n * β ^ 2⊢ β ^ n * (2 * β + 1) = 2 * β ^ (n + 1) + β ^ n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2)] α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nn:ℕthis:β ^ (n + 2) = β ^ n * β ^ 2⊢ β ^ n * (2 * β + 1) = 2 * β ^ (n + 1) + β ^ n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2); ring α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2) α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2)
-- Joint induction on consecutive indices.
suffices h : ∀ n,
(pellNumber n : ℝ) = (α ^ n - β ^ n) / (2 * √2) ∧
(pellNumber (n + 1) : ℝ) = (α ^ (n + 1) - β ^ (n + 1)) / (2 * √2) from
fun n => (h n).1 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ ∀ (n : ℕ), ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2) ∧ ↑(pellNumber (n + 1)) = (α ^ (n + 1) - β ^ (n + 1)) / (2 * √2)
intro n α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ nn:ℕ⊢ ↑(pellNumber n) = (α ^ n - β ^ n) / (2 * √2) ∧ ↑(pellNumber (n + 1)) = (α ^ (n + 1) - β ^ (n + 1)) / (2 * √2)
induction n with
| zero => zero α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ ↑(pellNumber 0) = (α ^ 0 - β ^ 0) / (2 * √2) ∧ ↑(pellNumber (0 + 1)) = (α ^ (0 + 1) - β ^ (0 + 1)) / (2 * √2)
refine ⟨?_, ?_⟩ zero.refine_1 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ ↑(pellNumber 0) = (α ^ 0 - β ^ 0) / (2 * √2)zero.refine_2 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ ↑(pellNumber (0 + 1)) = (α ^ (0 + 1) - β ^ (0 + 1)) / (2 * √2)
· zero.refine_1 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ ↑(pellNumber 0) = (α ^ 0 - β ^ 0) / (2 * √2) simp [pellNumber] All goals completed! 🐙
· zero.refine_2 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ ↑(pellNumber (0 + 1)) = (α ^ (0 + 1) - β ^ (0 + 1)) / (2 * √2) -- pellNumber 1 = 1 and (α - β) / (2√2) = (2√2) / (2√2) = 1.
simp only [pellNumber, pow_one, Nat.cast_one, zero_add] zero.refine_2 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ 1 = (α - β) / (2 * √2)
rw [hα_def, zero.refine_2 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ 1 = (1 + √2 - β) / (2 * √2) zero.refine_2 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ 1 = (1 + √2 - (1 - √2)) / (2 * √2) hβ_def zero.refine_2 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ 1 = (1 + √2 - (1 - √2)) / (2 * √2)zero.refine_2 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ 1 = (1 + √2 - (1 - √2)) / (2 * √2)]zero.refine_2 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ 1 = (1 + √2 - (1 - √2)) / (2 * √2)
field_simp zero.refine_2 α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ n⊢ √2 * 2 = 1 + √2 - (1 - √2); ring All goals completed! 🐙
| succ k ih => succ α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ nk:ℕih:↑(pellNumber k) = (α ^ k - β ^ k) / (2 * √2) ∧ ↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)⊢ ↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2) ∧
↑(pellNumber (k + 1 + 1)) = (α ^ (k + 1 + 1) - β ^ (k + 1 + 1)) / (2 * √2)
obtain ⟨hk, hk1⟩ := ih succ α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ nk:ℕhk:↑(pellNumber k) = (α ^ k - β ^ k) / (2 * √2)hk1:↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)⊢ ↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2) ∧
↑(pellNumber (k + 1 + 1)) = (α ^ (k + 1 + 1) - β ^ (k + 1 + 1)) / (2 * √2)
refine ⟨hk1, ?_⟩ succ α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ nk:ℕhk:↑(pellNumber k) = (α ^ k - β ^ k) / (2 * √2)hk1:↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)⊢ ↑(pellNumber (k + 1 + 1)) = (α ^ (k + 1 + 1) - β ^ (k + 1 + 1)) / (2 * √2)
-- pellNumber (k+2) = 2 * pellNumber (k+1) + pellNumber k, both sides cast to ℝ.
have hrec : pellNumber (k + 1 + 1) = 2 * pellNumber (k + 1) + pellNumber k := rfl succ α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ nk:ℕhk:↑(pellNumber k) = (α ^ k - β ^ k) / (2 * √2)hk1:↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)hrec:pellNumber (k + 1 + 1) = 2 * pellNumber (k + 1) + pellNumber k⊢ ↑(pellNumber (k + 1 + 1)) = (α ^ (k + 1 + 1) - β ^ (k + 1 + 1)) / (2 * √2)
show (pellNumber (k + 1 + 1) : ℝ) = (α ^ (k + 1 + 1) - β ^ (k + 1 + 1)) / (2 * √2) succ α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ nk:ℕhk:↑(pellNumber k) = (α ^ k - β ^ k) / (2 * √2)hk1:↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)hrec:pellNumber (k + 1 + 1) = 2 * pellNumber (k + 1) + pellNumber k⊢ ↑(pellNumber (k + 1 + 1)) = (α ^ (k + 1 + 1) - β ^ (k + 1 + 1)) / (2 * √2)
rw [hrec succ α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ nk:ℕhk:↑(pellNumber k) = (α ^ k - β ^ k) / (2 * √2)hk1:↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)hrec:pellNumber (k + 1 + 1) = 2 * pellNumber (k + 1) + pellNumber k⊢ ↑(2 * pellNumber (k + 1) + pellNumber k) = (α ^ (k + 1 + 1) - β ^ (k + 1 + 1)) / (2 * √2) succ α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ nk:ℕhk:↑(pellNumber k) = (α ^ k - β ^ k) / (2 * √2)hk1:↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)hrec:pellNumber (k + 1 + 1) = 2 * pellNumber (k + 1) + pellNumber k⊢ ↑(2 * pellNumber (k + 1) + pellNumber k) = (α ^ (k + 1 + 1) - β ^ (k + 1 + 1)) / (2 * √2)]succ α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ nk:ℕhk:↑(pellNumber k) = (α ^ k - β ^ k) / (2 * √2)hk1:↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)hrec:pellNumber (k + 1 + 1) = 2 * pellNumber (k + 1) + pellNumber k⊢ ↑(2 * pellNumber (k + 1) + pellNumber k) = (α ^ (k + 1 + 1) - β ^ (k + 1 + 1)) / (2 * √2)
push_cast succ α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ nk:ℕhk:↑(pellNumber k) = (α ^ k - β ^ k) / (2 * √2)hk1:↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)hrec:pellNumber (k + 1 + 1) = 2 * pellNumber (k + 1) + pellNumber k⊢ 2 * ↑(pellNumber (k + 1)) + ↑(pellNumber k) = (α ^ (k + 1 + 1) - β ^ (k + 1 + 1)) / (2 * √2)
rw [hk1, succ α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ nk:ℕhk:↑(pellNumber k) = (α ^ k - β ^ k) / (2 * √2)hk1:↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)hrec:pellNumber (k + 1 + 1) = 2 * pellNumber (k + 1) + pellNumber k⊢ 2 * ((α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)) + ↑(pellNumber k) = (α ^ (k + 1 + 1) - β ^ (k + 1 + 1)) / (2 * √2) succ α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ nk:ℕhk:↑(pellNumber k) = (α ^ k - β ^ k) / (2 * √2)hk1:↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)hrec:pellNumber (k + 1 + 1) = 2 * pellNumber (k + 1) + pellNumber k⊢ 2 * ((α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)) + (α ^ k - β ^ k) / (2 * √2) =
(2 * α ^ (k + 1) + α ^ k - (2 * β ^ (k + 1) + β ^ k)) / (2 * √2) hk, succ α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ nk:ℕhk:↑(pellNumber k) = (α ^ k - β ^ k) / (2 * √2)hk1:↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)hrec:pellNumber (k + 1 + 1) = 2 * pellNumber (k + 1) + pellNumber k⊢ 2 * ((α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)) + (α ^ k - β ^ k) / (2 * √2) =
(α ^ (k + 1 + 1) - β ^ (k + 1 + 1)) / (2 * √2)succ α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ nk:ℕhk:↑(pellNumber k) = (α ^ k - β ^ k) / (2 * √2)hk1:↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)hrec:pellNumber (k + 1 + 1) = 2 * pellNumber (k + 1) + pellNumber k⊢ 2 * ((α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)) + (α ^ k - β ^ k) / (2 * √2) =
(2 * α ^ (k + 1) + α ^ k - (2 * β ^ (k + 1) + β ^ k)) / (2 * √2) hα_rec k, succ α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ nk:ℕhk:↑(pellNumber k) = (α ^ k - β ^ k) / (2 * √2)hk1:↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)hrec:pellNumber (k + 1 + 1) = 2 * pellNumber (k + 1) + pellNumber k⊢ 2 * ((α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)) + (α ^ k - β ^ k) / (2 * √2) =
(2 * α ^ (k + 1) + α ^ k - β ^ (k + 1 + 1)) / (2 * √2)succ α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ nk:ℕhk:↑(pellNumber k) = (α ^ k - β ^ k) / (2 * √2)hk1:↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)hrec:pellNumber (k + 1 + 1) = 2 * pellNumber (k + 1) + pellNumber k⊢ 2 * ((α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)) + (α ^ k - β ^ k) / (2 * √2) =
(2 * α ^ (k + 1) + α ^ k - (2 * β ^ (k + 1) + β ^ k)) / (2 * √2) hβ_rec k succ α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ nk:ℕhk:↑(pellNumber k) = (α ^ k - β ^ k) / (2 * √2)hk1:↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)hrec:pellNumber (k + 1 + 1) = 2 * pellNumber (k + 1) + pellNumber k⊢ 2 * ((α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)) + (α ^ k - β ^ k) / (2 * √2) =
(2 * α ^ (k + 1) + α ^ k - (2 * β ^ (k + 1) + β ^ k)) / (2 * √2)succ α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ nk:ℕhk:↑(pellNumber k) = (α ^ k - β ^ k) / (2 * √2)hk1:↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)hrec:pellNumber (k + 1 + 1) = 2 * pellNumber (k + 1) + pellNumber k⊢ 2 * ((α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)) + (α ^ k - β ^ k) / (2 * √2) =
(2 * α ^ (k + 1) + α ^ k - (2 * β ^ (k + 1) + β ^ k)) / (2 * √2)]succ α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ nk:ℕhk:↑(pellNumber k) = (α ^ k - β ^ k) / (2 * √2)hk1:↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)hrec:pellNumber (k + 1 + 1) = 2 * pellNumber (k + 1) + pellNumber k⊢ 2 * ((α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)) + (α ^ k - β ^ k) / (2 * √2) =
(2 * α ^ (k + 1) + α ^ k - (2 * β ^ (k + 1) + β ^ k)) / (2 * √2)
field_simp succ α:ℝ := 1 + √2hα_def:α = 1 + √2β:ℝ := 1 - √2hβ_def:β = 1 - √2hsq2:√2 ^ 2 = 2hα_sq:α ^ 2 = 2 * α + 1hβ_sq:β ^ 2 = 2 * β + 1h2sq2_ne:2 * √2 ≠ 0hα_rec:∀ (n : ℕ), α ^ (n + 2) = 2 * α ^ (n + 1) + α ^ nhβ_rec:∀ (n : ℕ), β ^ (n + 2) = 2 * β ^ (n + 1) + β ^ nk:ℕhk:↑(pellNumber k) = (α ^ k - β ^ k) / (2 * √2)hk1:↑(pellNumber (k + 1)) = (α ^ (k + 1) - β ^ (k + 1)) / (2 * √2)hrec:pellNumber (k + 1 + 1) = 2 * pellNumber (k + 1) + pellNumber k⊢ 2 * (α ^ (k + 1) - β ^ (k + 1)) + (α ^ k - β ^ k) = 2 * α ^ (k + 1) + α ^ k - (2 * β ^ (k + 1) + β ^ k)
ring All goals completed! 🐙There are infinitely many prime Pell numbers
@[category research open, AMS 11]
theorem infinite_pellNumber_primes : Infinite {n : ℕ | Prime (pellNumber n)} := by ⊢ Infinite ↑{n | Prime (pellNumber n)}
sorry All goals completed! 🐙-- TODO : Formalise connection between Pell numbers and Pell equation x^2 - 2*y^2 = -1
end PellNumbers