/-
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.
-/
module
public import FormalConjecturesUtilErdős Problem 423
References:
[Er77c] Erdős, P., Problems and results on combinatorial number theory. III, Number theory day (Proc. Conf., Rockefeller Univ., New York, 1976), 1977, pp. 43–72.
[ErGr80] Erdős, P. and Graham, R., Old and new problems and results in combinatorial number theory, Monographies de L'Enseignement Mathématique (1980).
[Cu25] Cushman, A., A Note on the Sum-Product Problem and the Convex Sumset Problem. arXiv:2512.13849 (2025).
[Ta26] Tang, Q., The Hofstadter consecutive-sum sequence omits infinitely many positive integers. arXiv:2603.09939 (2026).
[Bolan] Bolan, M., Hofstader–Ulam Sequence, https://github.com/mjtb49/HofstaderUlam/blob/main/HofstaderUlamSequence.pdf
@[expose] public sectionopen Finset BigOperators Filter Asymptoticsnamespace Erdos423
IsConsecutiveBlockSum a k m means that $m$ equals the sum of at least two
consecutive terms of the sequence $a$, using indices from ${1, \ldots, k - 1}$.
That is, there exist $i, j$ with $1 \le i$, $i + 1 \le j$, $j \le k - 1$ such that
$m = a(i) + a(i+1) + \cdots + a(j)$.
def IsConsecutiveBlockSum (a : ℕ → ℕ) (k : ℕ) (m : ℕ) : Prop :=
∃ i j : ℕ, 1 ≤ i ∧ i + 1 ≤ j ∧ j + 1 ≤ k ∧
m = ∑ l ∈ Finset.Icc i j, a lThe Hofstadter sequence (OEIS A005243): $a(1) = 1$, $a(2) = 2$, and for $k \ge 3$, $a(k)$ is the least integer $> a(k-1)$ that equals the sum of at least two consecutive terms from ${a(1), \ldots, a(k-1)}$. The sequence begins $1, 2, 3, 5, 6, 8, 10, 11, \ldots$.
def IsHofstadterSeq (a : ℕ → ℕ) : Prop :=
a 1 = 1 ∧ a 2 = 2 ∧
∀ k : ℕ, 3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧
∀ m : ℕ, a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mThe third term of the Hofstadter sequence is $a(3) = 3 = a(1) + a(2) = 1 + 2$.
a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mi:ℕj:ℕhi:1 ≤ ihij:i + 1 ≤ jhjk:j + 1 ≤ 3hsum:a 3 = ∑ l ∈ Icc i j, a lleft✝:a (3 - 1) < a 3right✝:∀ (m : ℕ), a (3 - 1) < m → m < a 3 → ¬IsConsecutiveBlockSum a 3 mthis:i = 1 ∧ j = 2⊢ a 3 = 3
obtain ⟨rfl, rfl⟩ := this a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mleft✝:a (3 - 1) < a 3right✝:∀ (m : ℕ), a (3 - 1) < m → m < a 3 → ¬IsConsecutiveBlockSum a 3 mhi:1 ≤ 1hjk:2 + 1 ≤ 3hij:1 + 1 ≤ 2hsum:a 3 = ∑ l ∈ Icc 1 2, a l⊢ a 3 = 3
simp only [show Finset.Icc 1 2 = {1, 2} from by decide,
Finset.sum_pair (show (1 : ℕ) ≠ 2 from by decide), ha1, ha2] at hsum a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mleft✝:a (3 - 1) < a 3right✝:∀ (m : ℕ), a (3 - 1) < m → m < a 3 → ¬IsConsecutiveBlockSum a 3 mhi:1 ≤ 1hjk:2 + 1 ≤ 3hij:1 + 1 ≤ 2hsum:a 3 = 1 + 2⊢ a 3 = 3
omega All goals completed! 🐙The fourth term of the Hofstadter sequence is $a(4) = 5 = a(2) + a(3) = 2 + 3$.
@[category test, AMS 5 11]
theorem erdos_423.test.a4 : ∀ a : ℕ → ℕ, IsHofstadterSeq a → a 4 = 5 := by ⊢ ∀ (a : ℕ → ℕ), IsHofstadterSeq a → a 4 = 5
intro a ⟨ha1, ha2, hk⟩ a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k m⊢ a 4 = 5
have ha3 : a 3 = 3 := erdos_423.test.a3 a ⟨ha1, ha2, hk⟩ a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3⊢ a 4 = 5
obtain ⟨⟨i, j, hi, hij, hjk, hsum⟩, hlt, hmin⟩ := hk 4 (by a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3⊢ 3 ≤ 4 a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3i:ℕj:ℕhi:1 ≤ ihij:i + 1 ≤ jhjk:j + 1 ≤ 4hsum:a 4 = ∑ l ∈ Icc i j, a lhlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 m⊢ a 4 = 5 omega All goals completed! 🐙 a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3i:ℕj:ℕhi:1 ≤ ihij:i + 1 ≤ jhjk:j + 1 ≤ 4hsum:a 4 = ∑ l ∈ Icc i j, a lhlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 m⊢ a 4 = 5) a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3i:ℕj:ℕhi:1 ≤ ihij:i + 1 ≤ jhjk:j + 1 ≤ 4hsum:a 4 = ∑ l ∈ Icc i j, a lhlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 m⊢ a 4 = 5
-- Since `j ≤ 3`, the possible pairs `(i, j)` are `(1, 2)`, `(2, 3)`, and `(1, 3)`.
have h_ij : (i = 1 ∧ j = 2) ∨ (i = 2 ∧ j = 3) ∨ (i = 1 ∧ j = 3) := by ⊢ ∀ (a : ℕ → ℕ), IsHofstadterSeq a → a 4 = 5 a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3i:ℕj:ℕhi:1 ≤ ihij:i + 1 ≤ jhjk:j + 1 ≤ 4hsum:a 4 = ∑ l ∈ Icc i j, a lhlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mh_ij:i = 1 ∧ j = 2 ∨ i = 2 ∧ j = 3 ∨ i = 1 ∧ j = 3⊢ a 4 = 5 omega a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3i:ℕj:ℕhi:1 ≤ ihij:i + 1 ≤ jhjk:j + 1 ≤ 4hsum:a 4 = ∑ l ∈ Icc i j, a lhlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mh_ij:i = 1 ∧ j = 2 ∨ i = 2 ∧ j = 3 ∨ i = 1 ∧ j = 3⊢ a 4 = 5 a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3i:ℕj:ℕhi:1 ≤ ihij:i + 1 ≤ jhjk:j + 1 ≤ 4hsum:a 4 = ∑ l ∈ Icc i j, a lhlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mh_ij:i = 1 ∧ j = 2 ∨ i = 2 ∧ j = 3 ∨ i = 1 ∧ j = 3⊢ a 4 = 5
rcases h_ij with ⟨rfl, rfl⟩ | ⟨rfl, rfl⟩ | ⟨rfl, rfl⟩ inl a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:2 + 1 ≤ 4hij:1 + 1 ≤ 2hsum:a 4 = ∑ l ∈ Icc 1 2, a l⊢ a 4 = 5inr.inl a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 2hjk:3 + 1 ≤ 4hij:2 + 1 ≤ 3hsum:a 4 = ∑ l ∈ Icc 2 3, a l⊢ a 4 = 5inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = ∑ l ∈ Icc 1 3, a l⊢ a 4 = 5
· inl a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:2 + 1 ≤ 4hij:1 + 1 ≤ 2hsum:a 4 = ∑ l ∈ Icc 1 2, a l⊢ a 4 = 5 simp only [show Finset.Icc 1 2 = {1, 2} from by decide,
Finset.sum_pair (by decide : (1 : ℕ) ≠ 2), ha1, ha2] at hsum inl a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:2 + 1 ≤ 4hij:1 + 1 ≤ 2hsum:a 4 = 1 + 2⊢ a 4 = 5
rw [ha3 inl a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:2 + 1 ≤ 4hij:1 + 1 ≤ 2hsum:a 4 = 1 + 2⊢ a 4 = 5 inl a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:2 + 1 ≤ 4hij:1 + 1 ≤ 2hsum:a 4 = 1 + 2⊢ a 4 = 5] at hltinl a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:2 + 1 ≤ 4hij:1 + 1 ≤ 2hsum:a 4 = 1 + 2⊢ a 4 = 5
omega All goals completed! 🐙
· inr.inl a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 2hjk:3 + 1 ≤ 4hij:2 + 1 ≤ 3hsum:a 4 = ∑ l ∈ Icc 2 3, a l⊢ a 4 = 5 simp only [show Finset.Icc 2 3 = {2, 3} from by decide,
Finset.sum_pair (by decide : (2 : ℕ) ≠ 3), ha2, ha3] at hsum inr.inl a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 2hjk:3 + 1 ≤ 4hij:2 + 1 ≤ 3hsum:a 4 = 2 + 3⊢ a 4 = 5
omega All goals completed! 🐙
· inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = ∑ l ∈ Icc 1 3, a l⊢ a 4 = 5 rw [show Finset.Icc 1 3 = {1, 2, 3} from by a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = ∑ l ∈ Icc 1 3, a l⊢ Icc 1 3 = {1, 2, 3} inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)⊢ a 4 = 5 decide All goals completed! 🐙inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)⊢ a 4 = 5,
Finset.sum_insert (by a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = ∑ l ∈ {1, 2, 3}, a l⊢ 1 ∉ {2, 3}inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)⊢ a 4 = 5 decide All goals completed! 🐙inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)⊢ a 4 = 5 : (1 : ℕ) ∉ ({2, 3} : Finset ℕ)),
Finset.sum_pair (by a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = a 1 + ∑ x ∈ {2, 3}, a x⊢ 2 ≠ 3inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)⊢ a 4 = 5 decide All goals completed! 🐙inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)⊢ a 4 = 5 : (2 : ℕ) ≠ 3), ha1, inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (a 2 + a 3)⊢ a 4 = 5inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)⊢ a 4 = 5 ha2, inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + a 3)⊢ a 4 = 5inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)⊢ a 4 = 5 ha3 inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)⊢ a 4 = 5inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)⊢ a 4 = 5] at hsuminr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:a (4 - 1) < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)⊢ a 4 = 5
rw [ha3 inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)⊢ a 4 = 5 inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)⊢ a 4 = 5] at hltinr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)⊢ a 4 = 5
have ha4_eq : a 4 = 6 := by ⊢ ∀ (a : ℕ → ℕ), IsHofstadterSeq a → a 4 = 5 inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)ha4_eq:a 4 = 6⊢ a 4 = 5 omegainr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)ha4_eq:a 4 = 6⊢ a 4 = 5inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)ha4_eq:a 4 = 6⊢ a 4 = 5
have h3_lt_5 : a 3 < 5 := by ⊢ ∀ (a : ℕ → ℕ), IsHofstadterSeq a → a 4 = 5 inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)ha4_eq:a 4 = 6h3_lt_5:a 3 < 5⊢ a 4 = 5 omegainr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)ha4_eq:a 4 = 6h3_lt_5:a 3 < 5⊢ a 4 = 5inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)ha4_eq:a 4 = 6h3_lt_5:a 3 < 5⊢ a 4 = 5
have h5_lt_a4 : 5 < a 4 := by ⊢ ∀ (a : ℕ → ℕ), IsHofstadterSeq a → a 4 = 5 inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)ha4_eq:a 4 = 6h3_lt_5:a 3 < 5h5_lt_a4:5 < a 4⊢ a 4 = 5 omegainr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)ha4_eq:a 4 = 6h3_lt_5:a 3 < 5h5_lt_a4:5 < a 4⊢ a 4 = 5inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)ha4_eq:a 4 = 6h3_lt_5:a 3 < 5h5_lt_a4:5 < a 4⊢ a 4 = 5
exfalso inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)ha4_eq:a 4 = 6h3_lt_5:a 3 < 5h5_lt_a4:5 < a 4⊢ False
apply hmin 5 h3_lt_5 h5_lt_a4 inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)ha4_eq:a 4 = 6h3_lt_5:a 3 < 5h5_lt_a4:5 < a 4⊢ IsConsecutiveBlockSum a 4 5
refine ⟨2, 3, by a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)ha4_eq:a 4 = 6h3_lt_5:a 3 < 5h5_lt_a4:5 < a 4⊢ 1 ≤ 2 omega All goals completed! 🐙, by a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)ha4_eq:a 4 = 6h3_lt_5:a 3 < 5h5_lt_a4:5 < a 4⊢ 2 + 1 ≤ 3 omega All goals completed! 🐙, by a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)ha4_eq:a 4 = 6h3_lt_5:a 3 < 5h5_lt_a4:5 < a 4⊢ 3 + 1 ≤ 4 omega All goals completed! 🐙, ?_⟩
rw [show Finset.Icc 2 3 = {2, 3} from by a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)ha4_eq:a 4 = 6h3_lt_5:a 3 < 5h5_lt_a4:5 < a 4⊢ Icc 2 3 = {2, 3} All goals completed! 🐙 decide All goals completed! 🐙 All goals completed! 🐙,
Finset.sum_pair (by a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)ha4_eq:a 4 = 6h3_lt_5:a 3 < 5h5_lt_a4:5 < a 4⊢ 2 ≠ 3 All goals completed! 🐙 decide All goals completed! 🐙 All goals completed! 🐙 : (2 : ℕ) ≠ 3), ha2, inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)ha4_eq:a 4 = 6h3_lt_5:a 3 < 5h5_lt_a4:5 < a 4⊢ 5 = 2 + a 3 All goals completed! 🐙 ha3 inr.inr a:ℕ → ℕha1:a 1 = 1ha2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mha3:a 3 = 3hlt:3 < a 4hmin:∀ (m : ℕ), a (4 - 1) < m → m < a 4 → ¬IsConsecutiveBlockSum a 4 mhi:1 ≤ 1hjk:3 + 1 ≤ 4hij:1 + 1 ≤ 3hsum:a 4 = 1 + (2 + 3)ha4_eq:a 4 = 6h3_lt_5:a 3 < 5h5_lt_a4:5 < a 4⊢ 5 = 2 + 3 All goals completed! 🐙] All goals completed! 🐙Erdős Problem 423 [Er77c, p.71; ErGr80, p.83]:
Let $a(1) = 1$, $a(2) = 2$, and for $k \ge 3$ let $a(k)$ be the least integer greater than $a(k-1)$ that is a sum of at least two consecutive terms of the sequence. What is the asymptotic behaviour of this sequence? It seems likely that $a_n = n + o(n)$.
@[category research open, AMS 5 11]
theorem erdos_423 : answer(sorry) ↔
∀ a : ℕ → ℕ, IsHofstadterSeq a →
(fun n : ℕ => (a n : ℝ) - n) =o[atTop] (fun n : ℕ => (n : ℝ)) := by ⊢ True ↔ ∀ (a : ℕ → ℕ), IsHofstadterSeq a → (fun n ↦ ↑(a n) - ↑n) =o[atTop] fun n ↦ ↑n
sorry All goals completed! 🐙Bolan and Tang [Ta26] independently proved that $a_n-n$ is nondecreasing.
@[category research solved, AMS 5 11]
theorem erdos_423.variants.nondecreasing :
∀ a : ℕ → ℕ, IsHofstadterSeq a →
∀ n m : ℕ, 1 ≤ n → n ≤ m → a n - n ≤ a m - m := by ⊢ ∀ (a : ℕ → ℕ), IsHofstadterSeq a → ∀ (n m : ℕ), 1 ≤ n → n ≤ m → a n - n ≤ a m - m
sorry All goals completed! 🐙Bolan and Tang [Ta26] independently proved that $a_n-n\to\infty$.
@[category research solved, AMS 5 11]
theorem erdos_423.variants.unbounded :
∀ a : ℕ → ℕ, IsHofstadterSeq a →
∀ M : ℕ, ∀ᶠ n in atTop, M + n ≤ a n := by ⊢ ∀ (a : ℕ → ℕ), IsHofstadterSeq a → ∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a n
sorry All goals completed! 🐙Bolan and Tang [Ta26] independently proved that infinitely many positive integers do not occur in the Hofstadter sequence.
@[category research solved, AMS 5 11]
theorem erdos_423.variants.infinite_complement :
∀ a : ℕ → ℕ, IsHofstadterSeq a → Set.Infinite (Set.range a)ᶜ := by ⊢ ∀ (a : ℕ → ℕ), IsHofstadterSeq a → (Set.range a)ᶜ.Infinite
sorry All goals completed! 🐙
A Hofstadter sequence is strictly increasing from index 1 on.
@[category API, AMS 5 11]
theorem IsHofstadterSeq.strictMono {a : ℕ → ℕ} (ha : IsHofstadterSeq a) :
StrictMono fun k => a (k + 1) := by a:ℕ → ℕha:IsHofstadterSeq a⊢ StrictMono fun k ↦ a (k + 1)
obtain ⟨h1, h2, hk⟩ := ha a:ℕ → ℕh1:a 1 = 1h2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k m⊢ StrictMono fun k ↦ a (k + 1)
refine strictMono_nat_of_lt_succ fun k => ?_ a:ℕ → ℕh1:a 1 = 1h2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mk:ℕ⊢ a (k + 1) < a (k + 1 + 1)
show a (k + 1) < a (k + 1 + 1) a:ℕ → ℕh1:a 1 = 1h2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mk:ℕ⊢ a (k + 1) < a (k + 1 + 1)
rcases Nat.eq_zero_or_pos k with rfl | hpos inl a:ℕ → ℕh1:a 1 = 1h2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k m⊢ a (0 + 1) < a (0 + 1 + 1)inr a:ℕ → ℕh1:a 1 = 1h2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mk:ℕhpos:k > 0⊢ a (k + 1) < a (k + 1 + 1)
· inl a:ℕ → ℕh1:a 1 = 1h2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k m⊢ a (0 + 1) < a (0 + 1 + 1) show a 1 < a 2 inl a:ℕ → ℕh1:a 1 = 1h2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k m⊢ a 1 < a 2
omega All goals completed! 🐙
· inr a:ℕ → ℕh1:a 1 = 1h2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mk:ℕhpos:k > 0⊢ a (k + 1) < a (k + 1 + 1) have := (hk (k + 2) (by a:ℕ → ℕh1:a 1 = 1h2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mk:ℕhpos:k > 0⊢ 3 ≤ k + 2 inr a:ℕ → ℕh1:a 1 = 1h2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mk:ℕhpos:k > 0this:a (k + 2 - 1) < a (k + 2)⊢ a (k + 1) < a (k + 1 + 1) omega All goals completed! 🐙 inr a:ℕ → ℕh1:a 1 = 1h2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mk:ℕhpos:k > 0this:a (k + 2 - 1) < a (k + 2)⊢ a (k + 1) < a (k + 1 + 1))).2.1inr a:ℕ → ℕh1:a 1 = 1h2:a 2 = 2hk:∀ (k : ℕ),
3 ≤ k →
IsConsecutiveBlockSum a k (a k) ∧
a (k - 1) < a k ∧ ∀ (m : ℕ), a (k - 1) < m → m < a k → ¬IsConsecutiveBlockSum a k mk:ℕhpos:k > 0this:a (k + 2 - 1) < a (k + 2)⊢ a (k + 1) < a (k + 1 + 1)
simpa using this All goals completed! 🐙
A Hofstadter sequence satisfies n ≤ a n for n ≥ 1.
@[category API, AMS 5 11]
theorem IsHofstadterSeq.le_apply {a : ℕ → ℕ} (ha : IsHofstadterSeq a) (n : ℕ)
(hn : 1 ≤ n) : n ≤ a n := by a:ℕ → ℕha:IsHofstadterSeq an:ℕhn:1 ≤ n⊢ n ≤ a n
have h1 := ha.1 a:ℕ → ℕha:IsHofstadterSeq an:ℕhn:1 ≤ nh1:a 1 = 1⊢ n ≤ a n
induction n, hn using Nat.le_induction with
| base => base a:ℕ → ℕha:IsHofstadterSeq an:ℕh1:a 1 = 1⊢ 1 ≤ a 1 omega All goals completed! 🐙
| succ k hk ih => succ a:ℕ → ℕha:IsHofstadterSeq an:ℕh1:a 1 = 1k:ℕhk:1 ≤ kih:k ≤ a k⊢ k + 1 ≤ a (k + 1)
have := (IsHofstadterSeq.strictMono ha) (Nat.lt_succ_self (k - 1)) succ a:ℕ → ℕha:IsHofstadterSeq an:ℕh1:a 1 = 1k:ℕhk:1 ≤ kih:k ≤ a kthis:(fun k ↦ a (k + 1)) (k - 1) < (fun k ↦ a (k + 1)) (k - 1).succ⊢ k + 1 ≤ a (k + 1)
simp only [show k - 1 + 1 = k by omega, show k - 1 + 1 + 1 = k + 1 by omega] at this succ a:ℕ → ℕha:IsHofstadterSeq an:ℕh1:a 1 = 1k:ℕhk:1 ≤ kih:k ≤ a kthis:a k < a (k + 1)⊢ k + 1 ≤ a (k + 1)
omega All goals completed! 🐙
For indices ≥ 1, a Hofstadter sequence preserves and reflects <.
@[category API, AMS 5 11]
theorem IsHofstadterSeq.lt_iff_lt {a : ℕ → ℕ} (ha : IsHofstadterSeq a) {i j : ℕ}
(hi : 1 ≤ i) (hj : 1 ≤ j) :
a i < a j ↔ i < j := by a:ℕ → ℕha:IsHofstadterSeq ai:ℕj:ℕhi:1 ≤ ihj:1 ≤ j⊢ a i < a j ↔ i < j
obtain ⟨i, rfl⟩ := Nat.exists_eq_add_of_le' hi a:ℕ → ℕha:IsHofstadterSeq aj:ℕhj:1 ≤ ji:ℕhi:1 ≤ i + 1⊢ a (i + 1) < a j ↔ i + 1 < j
obtain ⟨j, rfl⟩ := Nat.exists_eq_add_of_le' hj a:ℕ → ℕha:IsHofstadterSeq ai:ℕhi:1 ≤ i + 1j:ℕhj:1 ≤ j + 1⊢ a (i + 1) < a (j + 1) ↔ i + 1 < j + 1
rw [(IsHofstadterSeq.strictMono ha).lt_iff_lt a:ℕ → ℕha:IsHofstadterSeq ai:ℕhi:1 ≤ i + 1j:ℕhj:1 ≤ j + 1⊢ i < j ↔ i + 1 < j + 1 a:ℕ → ℕha:IsHofstadterSeq ai:ℕhi:1 ≤ i + 1j:ℕhj:1 ≤ j + 1⊢ i < j ↔ i + 1 < j + 1] a:ℕ → ℕha:IsHofstadterSeq ai:ℕhi:1 ≤ i + 1j:ℕhj:1 ≤ j + 1⊢ i < j ↔ i + 1 < j + 1
omega All goals completed! 🐙
If a n - n is unbounded, infinitely many integers are missed: when a n ≥ N + 2 + n,
the n values a 0, …, a (n - 1) cannot cover the n + 1 integers in [N + 1, a n - 1], and
later terms are too large.
@[category API, AMS 5 11]
theorem IsHofstadterSeq.infinite_compl_of_unbounded {a : ℕ → ℕ} (ha : IsHofstadterSeq a)
(h : ∀ M : ℕ, ∀ᶠ n in atTop, M + n ≤ a n) : Set.Infinite (Set.range a)ᶜ := by a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a n⊢ (Set.range a)ᶜ.Infinite
refine Set.infinite_of_forall_exists_gt fun N => ?_ a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕ⊢ ∃ b ∈ (Set.range a)ᶜ, N < b
obtain ⟨n, hn⟩ := (h (N + 2)).exists_forall_of_atTop a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn:ℕhn:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a b⊢ ∃ b ∈ (Set.range a)ᶜ, N < b
obtain ⟨n, hn1, hn⟩ : ∃ n, 1 ≤ n ∧ N + 2 + n ≤ a n :=
⟨max n 1, by a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn:ℕhn:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a b⊢ 1 ≤ max n 1 a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a n⊢ ∃ b ∈ (Set.range a)ᶜ, N < b omega All goals completed! 🐙 a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a n⊢ ∃ b ∈ (Set.range a)ᶜ, N < b, hn _ (le_max_left _ _)⟩ a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a n⊢ ∃ b ∈ (Set.range a)ᶜ, N < b
-- The `n` values `a 0, …, a (n - 1)` cannot cover the `n + 1` integers in `[N + 1, a n - 1]`.
have hcard : ((Finset.range n).image a).card < (Finset.Icc (N + 1) (a n - 1)).card := by a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a n⊢ (Set.range a)ᶜ.Infinite a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))⊢ ∃ b ∈ (Set.range a)ᶜ, N < b
calc ((Finset.range n).image a).card ≤ n := by a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a n⊢ #(image a (range n)) ≤ n a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))⊢ ∃ b ∈ (Set.range a)ᶜ, N < b
simpa using Finset.card_image_le (s := Finset.range n) (f := a) All goals completed! 🐙 a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))⊢ ∃ b ∈ (Set.range a)ᶜ, N < b
_ < (Finset.Icc (N + 1) (a n - 1)).card := by a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a n⊢ n < #(Icc (N + 1) (a n - 1)) a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))⊢ ∃ b ∈ (Set.range a)ᶜ, N < b simp a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a n⊢ n < a n - 1 - N a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))⊢ ∃ b ∈ (Set.range a)ᶜ, N < b; omega a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))⊢ ∃ b ∈ (Set.range a)ᶜ, N < b a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))⊢ ∃ b ∈ (Set.range a)ᶜ, N < b
obtain ⟨x, hx, hxi⟩ := Finset.exists_mem_notMem_of_card_lt_card hcard a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))x:ℕhx:x ∈ Icc (N + 1) (a n - 1)hxi:x ∉ image a (range n)⊢ ∃ b ∈ (Set.range a)ᶜ, N < b
rw [Finset.mem_Icc a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))x:ℕhx:N + 1 ≤ x ∧ x ≤ a n - 1hxi:x ∉ image a (range n)⊢ ∃ b ∈ (Set.range a)ᶜ, N < b a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))x:ℕhx:N + 1 ≤ x ∧ x ≤ a n - 1hxi:x ∉ image a (range n)⊢ ∃ b ∈ (Set.range a)ᶜ, N < b] at hx a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))x:ℕhx:N + 1 ≤ x ∧ x ≤ a n - 1hxi:x ∉ image a (range n)⊢ ∃ b ∈ (Set.range a)ᶜ, N < b
refine ⟨x, ?_, by a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))x:ℕhx:N + 1 ≤ x ∧ x ≤ a n - 1hxi:x ∉ image a (range n)⊢ N < x omega All goals completed! 🐙⟩
rintro ⟨k, rfl⟩ a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))k:ℕhx:N + 1 ≤ a k ∧ a k ≤ a n - 1hxi:a k ∉ image a (range n)⊢ False
rcases Nat.lt_or_ge k n with hk | hk inl a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))k:ℕhx:N + 1 ≤ a k ∧ a k ≤ a n - 1hxi:a k ∉ image a (range n)hk:k < n⊢ Falseinr a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))k:ℕhx:N + 1 ≤ a k ∧ a k ≤ a n - 1hxi:a k ∉ image a (range n)hk:k ≥ n⊢ False
· inl a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))k:ℕhx:N + 1 ≤ a k ∧ a k ≤ a n - 1hxi:a k ∉ image a (range n)hk:k < n⊢ False exact hxi (Finset.mem_image.2 ⟨k, Finset.mem_range.2 hk, rfl⟩) All goals completed! 🐙
· inr a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))k:ℕhx:N + 1 ≤ a k ∧ a k ≤ a n - 1hxi:a k ∉ image a (range n)hk:k ≥ n⊢ False have : a n ≤ a k := by a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a n⊢ (Set.range a)ᶜ.Infinite inr a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))k:ℕhx:N + 1 ≤ a k ∧ a k ≤ a n - 1hxi:a k ∉ image a (range n)hk:k ≥ nthis:a n ≤ a k⊢ False
rcases eq_or_lt_of_le hk with rfl | hk' inl a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))hx:N + 1 ≤ a n ∧ a n ≤ a n - 1hxi:a n ∉ image a (range n)hk:n ≥ n⊢ a n ≤ a ninr a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))k:ℕhx:N + 1 ≤ a k ∧ a k ≤ a n - 1hxi:a k ∉ image a (range n)hk:k ≥ nhk':n < k⊢ a n ≤ a kinr a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))k:ℕhx:N + 1 ≤ a k ∧ a k ≤ a n - 1hxi:a k ∉ image a (range n)hk:k ≥ nthis:a n ≤ a k⊢ False
· inl a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))hx:N + 1 ≤ a n ∧ a n ≤ a n - 1hxi:a n ∉ image a (range n)hk:n ≥ n⊢ a n ≤ a ninr a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))k:ℕhx:N + 1 ≤ a k ∧ a k ≤ a n - 1hxi:a k ∉ image a (range n)hk:k ≥ nthis:a n ≤ a k⊢ False exact le_rfl All goals completed! 🐙inr a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))k:ℕhx:N + 1 ≤ a k ∧ a k ≤ a n - 1hxi:a k ∉ image a (range n)hk:k ≥ nthis:a n ≤ a k⊢ False
· inr a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))k:ℕhx:N + 1 ≤ a k ∧ a k ≤ a n - 1hxi:a k ∉ image a (range n)hk:k ≥ nhk':n < k⊢ a n ≤ a kinr a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))k:ℕhx:N + 1 ≤ a k ∧ a k ≤ a n - 1hxi:a k ∉ image a (range n)hk:k ≥ nthis:a n ≤ a k⊢ False exact ((IsHofstadterSeq.lt_iff_lt ha hn1 (by a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))k:ℕhx:N + 1 ≤ a k ∧ a k ≤ a n - 1hxi:a k ∉ image a (range n)hk:k ≥ nhk':n < k⊢ 1 ≤ kinr a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))k:ℕhx:N + 1 ≤ a k ∧ a k ≤ a n - 1hxi:a k ∉ image a (range n)hk:k ≥ nthis:a n ≤ a k⊢ False omega All goals completed! 🐙inr a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))k:ℕhx:N + 1 ≤ a k ∧ a k ≤ a n - 1hxi:a k ∉ image a (range n)hk:k ≥ nthis:a n ≤ a k⊢ False)).2 hk').leinr a:ℕ → ℕha:IsHofstadterSeq ah:∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a nN:ℕn✝:ℕhn✝:∀ (b : ℕ), n ≤ b → N + 2 + b ≤ a bn:ℕhn1:1 ≤ nhn:N + 2 + n ≤ a nhcard:#(image a (range n)) < #(Icc (N + 1) (a n - 1))k:ℕhx:N + 1 ≤ a k ∧ a k ≤ a n - 1hxi:a k ∉ image a (range n)hk:k ≥ nthis:a n ≤ a k⊢ False
omega All goals completed! 🐙
If infinitely many integers are missed, a n - n is unbounded: M + 1 missed integers
below n together with a 1, …, a n are distinct elements of [1, a n].
@[category API, AMS 5 11]
theorem IsHofstadterSeq.unbounded_of_infinite_compl {a : ℕ → ℕ} (ha : IsHofstadterSeq a)
(h : Set.Infinite (Set.range a)ᶜ) : ∀ M : ℕ, ∀ᶠ n in atTop, M + n ≤ a n := by a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.Infinite⊢ ∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a n
intro M a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕ⊢ ∀ᶠ (n : ℕ) in atTop, M + n ≤ a n
obtain ⟨t, hts, htc⟩ := h.exists_subset_card_eq (M + 1) a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1⊢ ∀ᶠ (n : ℕ) in atTop, M + n ≤ a n
-- All missed values in `t` are at most `X`.
set X := t.sup id with hX a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup id⊢ ∀ᶠ (n : ℕ) in atTop, M + n ≤ a n
rw [Filter.eventually_atTop a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup id⊢ ∃ a_1, ∀ (b : ℕ), a_1 ≤ b → M + b ≤ a b a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup id⊢ ∃ a_1, ∀ (b : ℕ), a_1 ≤ b → M + b ≤ a b] a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup id⊢ ∃ a_1, ∀ (b : ℕ), a_1 ≤ b → M + b ≤ a b
refine ⟨X + 1, fun n hn => ?_⟩ a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ n⊢ M + n ≤ a n
have hn1 : 1 ≤ n := by a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.Infinite⊢ ∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ n⊢ M + n ≤ a n omega a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ n⊢ M + n ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ n⊢ M + n ≤ a n
-- `a 1, …, a n` and the positive elements of `t` are distinct integers in `[1, a n]`.
set A := (Finset.Icc 1 n).image a with hA a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)⊢ M + n ≤ a n
set T := t.filter (fun x => 1 ≤ x) with hT a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}⊢ M + n ≤ a n
have hAcard : A.card = n := by a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.Infinite⊢ ∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = n⊢ M + n ≤ a n
rw [hA, a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}⊢ #(image a (Icc 1 n)) = n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}⊢ n + 1 - 1 = na:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}⊢ Set.InjOn a ↑(Icc 1 n) a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = n⊢ M + n ≤ a n Finset.card_image_of_injOn, a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}⊢ #(Icc 1 n) = na:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}⊢ Set.InjOn a ↑(Icc 1 n) a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}⊢ n + 1 - 1 = na:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}⊢ Set.InjOn a ↑(Icc 1 n) a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = n⊢ M + n ≤ a n Nat.card_Icc a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}⊢ n + 1 - 1 = na:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}⊢ Set.InjOn a ↑(Icc 1 n) a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}⊢ n + 1 - 1 = na:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}⊢ Set.InjOn a ↑(Icc 1 n) a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = n⊢ M + n ≤ a n] a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}⊢ n + 1 - 1 = na:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}⊢ Set.InjOn a ↑(Icc 1 n) a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = n⊢ M + n ≤ a n
· a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}⊢ n + 1 - 1 = n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = n⊢ M + n ≤ a n omega All goals completed! 🐙 a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = n⊢ M + n ≤ a n
· a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}⊢ Set.InjOn a ↑(Icc 1 n) a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = n⊢ M + n ≤ a n intro i hi j hj hij a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}i:ℕhi:i ∈ ↑(Icc 1 n)j:ℕhj:j ∈ ↑(Icc 1 n)hij:a i = a j⊢ i = j a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = n⊢ M + n ≤ a n
rw [Finset.coe_Icc, a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}i:ℕhi:i ∈ Set.Icc 1 nj:ℕhj:j ∈ Set.Icc 1 nhij:a i = a j⊢ i = j a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}i:ℕhi:1 ≤ i ∧ i ≤ nj:ℕhj:1 ≤ j ∧ j ≤ nhij:a i = a j⊢ i = j a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = n⊢ M + n ≤ a n Set.mem_Icc a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}i:ℕhi:1 ≤ i ∧ i ≤ nj:ℕhj:1 ≤ j ∧ j ≤ nhij:a i = a j⊢ i = j a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}i:ℕhi:1 ≤ i ∧ i ≤ nj:ℕhj:1 ≤ j ∧ j ≤ nhij:a i = a j⊢ i = j a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = n⊢ M + n ≤ a n] at hi hj a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}i:ℕhi:1 ≤ i ∧ i ≤ nj:ℕhj:1 ≤ j ∧ j ≤ nhij:a i = a j⊢ i = j a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = n⊢ M + n ≤ a n
by_contra hne a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}i:ℕhi:1 ≤ i ∧ i ≤ nj:ℕhj:1 ≤ j ∧ j ≤ nhij:a i = a jhne:¬i = j⊢ False a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = n⊢ M + n ≤ a n
rcases Nat.lt_or_gt_of_ne hne with hlt | hlt inl a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}i:ℕhi:1 ≤ i ∧ i ≤ nj:ℕhj:1 ≤ j ∧ j ≤ nhij:a i = a jhne:¬i = jhlt:i < j⊢ Falseinr a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}i:ℕhi:1 ≤ i ∧ i ≤ nj:ℕhj:1 ≤ j ∧ j ≤ nhij:a i = a jhne:¬i = jhlt:i > j⊢ False a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = n⊢ M + n ≤ a n
· inl a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}i:ℕhi:1 ≤ i ∧ i ≤ nj:ℕhj:1 ≤ j ∧ j ≤ nhij:a i = a jhne:¬i = jhlt:i < j⊢ False a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = n⊢ M + n ≤ a n exact absurd hij ((IsHofstadterSeq.lt_iff_lt ha hi.1 hj.1).2 hlt).ne All goals completed! 🐙 a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = n⊢ M + n ≤ a n
· inr a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}i:ℕhi:1 ≤ i ∧ i ≤ nj:ℕhj:1 ≤ j ∧ j ≤ nhij:a i = a jhne:¬i = jhlt:i > j⊢ False a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = n⊢ M + n ≤ a n exact absurd hij.symm ((IsHofstadterSeq.lt_iff_lt ha hj.1 hi.1).2 hlt).ne a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = n⊢ M + n ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = n⊢ M + n ≤ a n
have hTcard : M ≤ T.card := by a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.Infinite⊢ ∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #T⊢ M + n ≤ a n
have : (t.filter (fun x => ¬ 1 ≤ x)).card ≤ 1 := by a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.Infinite⊢ ∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nthis:#({x ∈ t | ¬1 ≤ x}) ≤ 1⊢ M ≤ #T a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #T⊢ M + n ≤ a n
calc (t.filter (fun x => ¬ 1 ≤ x)).card ≤ ({0} : Finset ℕ).card :=
Finset.card_le_card fun x hx => by a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nx:ℕhx:x ∈ {x ∈ t | ¬1 ≤ x}⊢ x ∈ {0} a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nthis:#({x ∈ t | ¬1 ≤ x}) ≤ 1⊢ M ≤ #T a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #T⊢ M + n ≤ a n
rw [Finset.mem_filter a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nx:ℕhx:x ∈ t ∧ ¬1 ≤ x⊢ x ∈ {0} a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nx:ℕhx:x ∈ t ∧ ¬1 ≤ x⊢ x ∈ {0} a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nthis:#({x ∈ t | ¬1 ≤ x}) ≤ 1⊢ M ≤ #T a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #T⊢ M + n ≤ a n] at hx a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nx:ℕhx:x ∈ t ∧ ¬1 ≤ x⊢ x ∈ {0} a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nthis:#({x ∈ t | ¬1 ≤ x}) ≤ 1⊢ M ≤ #T a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #T⊢ M + n ≤ a n; simp a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nx:ℕhx:x ∈ t ∧ ¬1 ≤ x⊢ x = 0 a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nthis:#({x ∈ t | ¬1 ≤ x}) ≤ 1⊢ M ≤ #T a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #T⊢ M + n ≤ a n; omega All goals completed! 🐙 a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nthis:#({x ∈ t | ¬1 ≤ x}) ≤ 1⊢ M ≤ #T a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #T⊢ M + n ≤ a n
_ = 1 := rfl a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nthis:#({x ∈ t | ¬1 ≤ x}) ≤ 1⊢ M ≤ #T a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #T⊢ M + n ≤ a n
have := Finset.card_filter_add_card_filter_not (s := t) (fun x => 1 ≤ x) a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nthis✝:#({x ∈ t | ¬1 ≤ x}) ≤ 1this:#({x ∈ t | 1 ≤ x}) + #({a ∈ t | ¬1 ≤ a}) = #t⊢ M ≤ #T a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #T⊢ M + n ≤ a n
rw [← hT a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nthis✝:#({x ∈ t | ¬1 ≤ x}) ≤ 1this:#T + #({a ∈ t | ¬1 ≤ a}) = #t⊢ M ≤ #T a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nthis✝:#({x ∈ t | ¬1 ≤ x}) ≤ 1this:#T + #({a ∈ t | ¬1 ≤ a}) = #t⊢ M ≤ #T a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #T⊢ M + n ≤ a n] at this a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nthis✝:#({x ∈ t | ¬1 ≤ x}) ≤ 1this:#T + #({a ∈ t | ¬1 ≤ a}) = #t⊢ M ≤ #T a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #T⊢ M + n ≤ a n
omega a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #T⊢ M + n ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #T⊢ M + n ≤ a n
have hdisj : Disjoint A T := by a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.Infinite⊢ ∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A T⊢ M + n ≤ a n
rw [Finset.disjoint_left a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #T⊢ ∀ ⦃a : ℕ⦄, a ∈ A → a ∉ T a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #T⊢ ∀ ⦃a : ℕ⦄, a ∈ A → a ∉ T a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A T⊢ M + n ≤ a n] a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #T⊢ ∀ ⦃a : ℕ⦄, a ∈ A → a ∉ T a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A T⊢ M + n ≤ a n
intro x hxA hxT a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Tx:ℕhxA:x ∈ AhxT:x ∈ T⊢ False a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A T⊢ M + n ≤ a n
obtain ⟨k, -, rfl⟩ := Finset.mem_image.1 hxA a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Tk:ℕhxA:a k ∈ AhxT:a k ∈ T⊢ False a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A T⊢ M + n ≤ a n
exact hts (Finset.mem_filter.1 hxT).1 ⟨k, rfl⟩ a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A T⊢ M + n ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A T⊢ M + n ≤ a n
have hsub : A ∪ T ⊆ Finset.Icc 1 (a n) := by a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.Infinite⊢ ∀ (M : ℕ), ∀ᶠ (n : ℕ) in atTop, M + n ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n
intro x hx a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tx:ℕhx:x ∈ A ∪ T⊢ x ∈ Icc 1 (a n) a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n
rw [Finset.mem_union a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tx:ℕhx:x ∈ A ∨ x ∈ T⊢ x ∈ Icc 1 (a n) a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tx:ℕhx:x ∈ A ∨ x ∈ T⊢ x ∈ Icc 1 (a n) a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n] at hx a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tx:ℕhx:x ∈ A ∨ x ∈ T⊢ x ∈ Icc 1 (a n) a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n
rw [Finset.mem_Icc a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tx:ℕhx:x ∈ A ∨ x ∈ T⊢ 1 ≤ x ∧ x ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tx:ℕhx:x ∈ A ∨ x ∈ T⊢ 1 ≤ x ∧ x ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n] a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tx:ℕhx:x ∈ A ∨ x ∈ T⊢ 1 ≤ x ∧ x ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n
rcases hx with hx | hx inl a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tx:ℕhx:x ∈ A⊢ 1 ≤ x ∧ x ≤ a ninr a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tx:ℕhx:x ∈ T⊢ 1 ≤ x ∧ x ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n
· inl a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tx:ℕhx:x ∈ A⊢ 1 ≤ x ∧ x ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n obtain ⟨k, hk, rfl⟩ := Finset.mem_image.1 hx inl a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tk:ℕhk:k ∈ Icc 1 nhx:a k ∈ A⊢ 1 ≤ a k ∧ a k ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n
rw [Finset.mem_Icc inl a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tk:ℕhk:1 ≤ k ∧ k ≤ nhx:a k ∈ A⊢ 1 ≤ a k ∧ a k ≤ a n inl a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tk:ℕhk:1 ≤ k ∧ k ≤ nhx:a k ∈ A⊢ 1 ≤ a k ∧ a k ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n] at hkinl a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tk:ℕhk:1 ≤ k ∧ k ≤ nhx:a k ∈ A⊢ 1 ≤ a k ∧ a k ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n
refine ⟨IsHofstadterSeq.le_apply ha k hk.1 |>.trans' (by a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tk:ℕhk:1 ≤ k ∧ k ≤ nhx:a k ∈ A⊢ 1 ≤ k a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n omega All goals completed! 🐙 a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n), ?_⟩
rcases eq_or_lt_of_le hk.2 with rfl | hlt inl.inl a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idT:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hTcard:M ≤ #Tk:ℕhn:X + 1 ≤ khn1:1 ≤ kA:Finset ℕ := image a (Icc 1 k)hA:A = image a (Icc 1 k)hAcard:#A = khdisj:Disjoint A Thk:1 ≤ k ∧ k ≤ khx:a k ∈ A⊢ a k ≤ a kinl.inr a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tk:ℕhk:1 ≤ k ∧ k ≤ nhx:a k ∈ Ahlt:k < n⊢ a k ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n
· inl.inl a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idT:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hTcard:M ≤ #Tk:ℕhn:X + 1 ≤ khn1:1 ≤ kA:Finset ℕ := image a (Icc 1 k)hA:A = image a (Icc 1 k)hAcard:#A = khdisj:Disjoint A Thk:1 ≤ k ∧ k ≤ khx:a k ∈ A⊢ a k ≤ a k a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n exact le_rfl All goals completed! 🐙 a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n
· inl.inr a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tk:ℕhk:1 ≤ k ∧ k ≤ nhx:a k ∈ Ahlt:k < n⊢ a k ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n exact ((IsHofstadterSeq.lt_iff_lt ha hk.1 hn1).2 hlt).le All goals completed! 🐙 a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n
· inr a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tx:ℕhx:x ∈ T⊢ 1 ≤ x ∧ x ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n obtain ⟨hxt, hx1⟩ := Finset.mem_filter.1 hx inr a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tx:ℕhx:x ∈ Thxt:x ∈ thx1:1 ≤ x⊢ 1 ≤ x ∧ x ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n
have : x ≤ X := Finset.le_sup (f := id) hxt inr a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tx:ℕhx:x ∈ Thxt:x ∈ thx1:1 ≤ xthis:x ≤ X⊢ 1 ≤ x ∧ x ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n
exact ⟨hx1, by a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tx:ℕhx:x ∈ Thxt:x ∈ thx1:1 ≤ xthis:x ≤ X⊢ x ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n have := IsHofstadterSeq.le_apply ha n hn1 a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Tx:ℕhx:x ∈ Thxt:x ∈ thx1:1 ≤ xthis✝:x ≤ Xthis:n ≤ a n⊢ x ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n; omega All goals completed! 🐙 a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n⟩ a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)⊢ M + n ≤ a n
have := Finset.card_le_card hsub a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)this:#(A ∪ T) ≤ #(Icc 1 (a n))⊢ M + n ≤ a n
rw [Finset.card_union_of_disjoint hdisj, a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)this:#A + #T ≤ #(Icc 1 (a n))⊢ M + n ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)this:n + #T ≤ a n + 1 - 1⊢ M + n ≤ a n hAcard, a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)this:n + #T ≤ #(Icc 1 (a n))⊢ M + n ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)this:n + #T ≤ a n + 1 - 1⊢ M + n ≤ a n Nat.card_Icc a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)this:n + #T ≤ a n + 1 - 1⊢ M + n ≤ a n a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)this:n + #T ≤ a n + 1 - 1⊢ M + n ≤ a n] at this a:ℕ → ℕha:IsHofstadterSeq ah:(Set.range a)ᶜ.InfiniteM:ℕt:Finset ℕhts:↑t ⊆ (Set.range a)ᶜhtc:#t = M + 1X:ℕ := t.sup idhX:X = t.sup idn:ℕhn:X + 1 ≤ nhn1:1 ≤ nA:Finset ℕ := image a (Icc 1 n)hA:A = image a (Icc 1 n)T:Finset ℕ := {x ∈ t | 1 ≤ x}hT:T = {x ∈ t | 1 ≤ x}hAcard:#A = nhTcard:M ≤ #Thdisj:Disjoint A Thsub:A ∪ T ⊆ Icc 1 (a n)this:n + #T ≤ a n + 1 - 1⊢ M + n ≤ a n
omega All goals completed! 🐙The unboundedness of $a_n-n$ is equivalent to the sequence omitting infinitely many positive integers.
@[category test, AMS 5 11]
theorem erdos_423.test.unbounded_iff_infinite_complement :
type_of% erdos_423.variants.unbounded ↔
type_of% erdos_423.variants.infinite_complement :=
⟨fun h a ha => ha.infinite_compl_of_unbounded (h a ha),
fun h a ha => ha.unbounded_of_infinite_compl (h a ha)⟩Tang [Ta26] proved $a_n \ll n^{1/(c-1)+o(1)}$ whenever every finite convex set $A$ satisfies $|A-A|\geq |A|^{c-o(1)}$. Using the bound of Cushman [Cu25] gives $a_n\ll n^{688/413+o(1)}$.
@[category research solved, AMS 5 11]
theorem erdos_423.variants.upper_bound :
∀ a : ℕ → ℕ, IsHofstadterSeq a →
∀ ε > (0 : ℝ), (fun n => (a n : ℝ)) =O[atTop]
(fun n => (n : ℝ) ^ ((688 : ℝ) / 413 + ε)) := by ⊢ ∀ (a : ℕ → ℕ), IsHofstadterSeq a → ∀ ε > 0, (fun n ↦ ↑(a n)) =O[atTop] fun n ↦ ↑n ^ (688 / 413 + ε)
sorry All goals completed! 🐙Tang [Ta26] proved the lower bound $a_n=n+\Omega(\log\log n)$.
@[category research solved, AMS 5 11]
theorem erdos_423.variants.lower_bound :
∀ a : ℕ → ℕ, IsHofstadterSeq a →
(fun n : ℕ => Real.log (Real.log n)) =O[atTop]
(fun n : ℕ => (a n : ℝ) - n) := by ⊢ ∀ (a : ℕ → ℕ), IsHofstadterSeq a → (fun n ↦ Real.log (Real.log ↑n)) =O[atTop] fun n ↦ ↑(a n) - ↑n
sorry All goals completed! 🐙end Erdos423