FormalConjectures/OEIS/358684.lean

GitHub source file

Explanation legend Lean4 Domain Explanation Language (L4DEL)

L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.

L4DEL
Lean4 Domain Explanation Language

Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.

Project sources: Pinned project documentation, Formal Conjectures paper, arXiv v1

13 declarations, 1 contain sorry, 0 declared as axioms

Factor bounds for Fermat numbers

$a(n)$ is the minimum integer $k$ such that the smallest prime factor of the $n$-th Fermat number exceeds $2^{2^n - k}$.

References:

Imports (2)
  1. def OeisA358684.a A358684: $a(n)$ is the minimum integer $k$ such that the smallest prime factor of the $n$-th Fermat number exceeds $2^{2^n - k}$ line 49 source

    Source documentation

    A358684: $a(n)$ is the minimum integer $k$ such that the smallest prime factor of the $n$-th Fermat number exceeds $2^{2^n - k}$. Let $F_n = 2^{2^n} + 1$ be the $n$-th Fermat number, and $P_n$ be its smallest prime factor. The definition of $a(n)$ is equivalent to the closed form: $$a(n) = 2^n - \lfloor \log_2(P_n) \rfloor$$ where $P_n = \operatorname{minFac}(\operatorname{fermatNumber} n)$. The subtraction is defined in $\mathbb{N}$ and is safe since $P_n \le F_n$, implying $\log_2 P_n < 2^n$.

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Nat

    Proof uses: HSub.hSub, HPow.hPow, OfNat.ofNat, Nat.log2, Nat.minFac, Nat.fermatNumber

    7 instances, coercions and auxiliary constants left out.

    def a (n : ℕ) : ℕ :=
    …
  2. def OeisA358684.a' The "original" definition: $a'(n)$ is the minimum $k$ such that $P_n > 2^{2^n - k}$ line 57 source

    Source documentation

    The "original" definition: $a'(n)$ is the minimum $k$ such that $P_n > 2^{2^n - k}$. We use Nat.find which returns the smallest natural number satisfying a predicate.

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Nat

    Proof uses: Nat.find, GT.gt, Nat.minFac, Nat.fermatNumber, HPow.hPow, OfNat.ofNat, HSub.hSub

    10 instances, coercions and auxiliary constants left out.

    Tactic trace: 6 steps

    Open to load the checked before-and-after goal states.

    noncomputable def a' (n : ℕ) : ℕ :=
    …
  3. lemma OeisA358684.log2_minFac_le The log2 of the smallest prime factor of $F_n$ is at most $2^n$ line 72 source

    Source documentation

    The log2 of the smallest prime factor of $F_n$ is at most $2^n$.

    private lemma log2_minFac_le (n : ℕ) : log2 (fermatNumber n).minFac ≤ 2^n := by
    …
  4. theorem OeisA358684.a_equiv_a' The minimization definition is equivalent to the closed form line 84 source

    Source documentation

    The minimization definition is equivalent to the closed form.

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Nat, Eq, OeisA358684.a, OeisA358684.a'

    Proof uses: id, HSub.hSub, HPow.hPow, OfNat.ofNat, Nat.log2, Nat.minFac, Nat.fermatNumber, Eq.mpr, Nat.find, GT.gt, congrArg, propext, Eq.comm, And, LT.lt, Not, Nat.find_eq_iff, And.intro, tsub_tsub_cancel_of_le, HAdd.hAdd and 55 more

    66 instances, coercions and auxiliary constants left out.

    Tactic trace: 30 steps

    Open to load the checked before-and-after goal states.

    theorem a_equiv_a' (n : ℕ) : a n = a' n := by
    …

    Mentions: OeisA358684.a, OeisA358684.a'

  5. theorem OeisA358684.a_0 line 107 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Eq, Nat, OeisA358684.a, OfNat.ofNat

    Proof uses: Eq.mpr, HSub.hSub, Nat.log2, id, congrFun', congrArg, congr, HPow.hPow, Nat.minFac, Nat.fermatNumber, Mathlib.Meta.NormNum.IsNat.to_eq, Mathlib.Meta.NormNum.isNat_pow, Eq.refl, Mathlib.Meta.NormNum.isNat_ofNat, Mathlib.Meta.NormNum.natPow_zero, Nat.Prime.minFac_eq, Mathlib.Meta.NormNum.isNat_prime_2, Bool, Bool.true, Mathlib.Meta.NormNum.isNat_minFac_4 and 17 more

    34 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

    Open to load the checked before-and-after goal states.

  6. theorem OeisA358684.a_1 line 110 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Eq, Nat, OeisA358684.a, OfNat.ofNat

    Proof uses: Eq.mpr, HSub.hSub, Nat.log2, id, congrFun', congrArg, congr, HPow.hPow, Nat.minFac, Nat.fermatNumber, Mathlib.Meta.NormNum.IsNat.to_eq, Mathlib.Meta.NormNum.isNat_pow, Eq.refl, Mathlib.Meta.NormNum.isNat_ofNat, Mathlib.Meta.NormNum.natPow_one, Nat.Prime.minFac_eq, Mathlib.Meta.NormNum.isNat_prime_2, Bool, Bool.true, Mathlib.Meta.NormNum.isNat_minFac_4 and 19 more

    56 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

    Open to load the checked before-and-after goal states.

  7. theorem OeisA358684.a_2 line 113 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Eq, Nat, OeisA358684.a, OfNat.ofNat

    Proof uses: Eq.mpr, HSub.hSub, Nat.log2, id, congrFun', congrArg, congr, HPow.hPow, Nat.minFac, Nat.fermatNumber, Mathlib.Meta.NormNum.IsNat.to_eq, Mathlib.Meta.NormNum.isNat_pow, Eq.refl, Mathlib.Meta.NormNum.isNat_ofNat, Mathlib.Meta.NormNum.IsNatPowT.run, Mathlib.Meta.NormNum.IsNatPowT.bit0, Nat.Prime.minFac_eq, Mathlib.Meta.NormNum.isNat_prime_2, Bool, Bool.true and 21 more

    56 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

    Open to load the checked before-and-after goal states.

  8. theorem OeisA358684.a_3 line 116 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Eq, Nat, OeisA358684.a, OfNat.ofNat

    Proof uses: id, HSub.hSub, HPow.hPow, Nat.log2, Nat.minFac, Nat.fermatNumber, Eq.mpr, HAdd.hAdd, congrFun', congrArg, congr, Mathlib.Meta.NormNum.IsNat.to_eq, Mathlib.Meta.NormNum.isNat_pow, Eq.refl, Mathlib.Meta.NormNum.isNat_ofNat, Mathlib.Meta.NormNum.IsNatPowT.run, Mathlib.Meta.NormNum.IsNatPowT.bit1, Mathlib.Meta.NormNum.isNat_minFac_4, Mathlib.Meta.NormNum.isNat_add, Mathlib.Meta.NormNum.IsNatPowT.trans and 11 more

    16 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

    Open to load the checked before-and-after goal states.

  9. theorem OeisA358684.a_4 line 122 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Eq, Nat, OeisA358684.a, OfNat.ofNat

    Proof uses: id, HSub.hSub, HPow.hPow, Nat.log2, Nat.minFac, Nat.fermatNumber, Eq.mpr, HAdd.hAdd, congrFun', congrArg, congr, Mathlib.Meta.NormNum.IsNat.to_eq, Mathlib.Meta.NormNum.isNat_pow, Eq.refl, Mathlib.Meta.NormNum.isNat_ofNat, Mathlib.Meta.NormNum.IsNatPowT.run, Mathlib.Meta.NormNum.IsNatPowT.trans, Nat.pow, Mathlib.Meta.NormNum.IsNatPowT.bit0, Mathlib.Meta.NormNum.isNat_minFac_4 and 10 more

    16 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

    Open to load the checked before-and-after goal states.

  10. theorem OeisA358684.a_5 line 128 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Eq, Nat, OeisA358684.a, OfNat.ofNat

    Proof uses: id, HSub.hSub, HPow.hPow, Nat.log2, Nat.minFac, Nat.fermatNumber, Eq.mpr, HAdd.hAdd, congrFun', congrArg, congr, Mathlib.Meta.NormNum.IsNat.to_eq, Mathlib.Meta.NormNum.isNat_pow, Eq.refl, Mathlib.Meta.NormNum.isNat_ofNat, Mathlib.Meta.NormNum.IsNatPowT.run, Mathlib.Meta.NormNum.IsNatPowT.trans, Nat.pow, Mathlib.Meta.NormNum.IsNatPowT.bit0, Mathlib.Meta.NormNum.IsNatPowT.bit1 and 11 more

    16 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

    Open to load the checked before-and-after goal states.

  11. theorem OeisA358684.a_6 line 134 source

    extra axioms: _private.0.OeisA358684.a_6._native.decide.ax_1 what this means

    Statement uses: Eq, Nat, OeisA358684.a, OfNat.ofNat

    Proof uses: of_decide_eq_true

    4 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

  12. theorem OeisA358684.a_7 sorry line 138 source

    depends on sorry what this means

    Statement uses: Eq, Nat, OeisA358684.a, OfNat.ofNat

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous

    2 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

  13. theorem OeisA358684.oeis_358684_conjecture_0 Conjecture: the dyadic valuation of A93179(n) - 1 does not exceed 2^n - a(n) line 152 source

    Source documentation

    Conjecture: the dyadic valuation of A93179(n) - 1 does not exceed 2^n - a(n).

    A93179(n) is minFac(fermatNumber n), the smallest prime factor of the n-th Fermat number. The conjecture states that if $P_n$ is the smallest prime factor of the $n$-th Fermat number, then $\nu_2(P_n - 1) \le 2^n - a(n)$. Substituting the definition of $a(n)$, this is equivalent to $\nu_2(P_n - 1) \le \lfloor \log_2(P_n) \rfloor$.

    This is Conjecture 3.4 in [SA22].

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Nat, LE.le, padicValNat, OfNat.ofNat, HSub.hSub, Nat.minFac, Nat.fermatNumber, HPow.hPow, OeisA358684.a

    Proof uses: id, Eq.mpr, HAdd.hAdd, Nat.log2, Eq, congrArg, Nat.sub_sub_self, Nat.log, Nat.log2_eq_log_two, LT.lt, of_eq_true, Eq.trans, True, HMul.hMul, pow_add, pow_one, mul_two, Not, False, And and 33 more

    66 instances, coercions and auxiliary constants left out.

    Tactic trace: 20 steps

    Open to load the checked before-and-after goal states.

    theorem oeis_358684_conjecture_0 (n : ℕ) :
        padicValNat 2 (minFac (fermatNumber n) - 1) ≤ 2 ^ n - a n := by
    …

    Mentions: OeisA358684.a