FormalConjectures/OEIS/100800.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

10 declarations, 1 contain sorry, 0 declared as axioms

Conjectures associated with A100800

Let $f(n) = n + \text{sum of the digits of } n$. If $f(n)$ is multiple of $n$ then $a(n)= f(n)$ else $a(n) = f(f(f(n)))\dots$ until one gets a multiple of $n$; $a(n) = 0$ if no such number exists.

References:

Imports (1)
  1. def OeisA100800.sumDigits The sum of the decimal digits of a natural number line 38 source

    Source documentation

    The sum of the decimal digits of a natural number.

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

    Statement uses: Nat

    Proof uses: List.sum, Nat.digits, OfNat.ofNat

    4 instances, coercions and auxiliary constants left out.

    def sumDigits (n : ℕ) : ℕ := ((10).digits n).sum
  2. def OeisA100800.f The function $f(n) = n + \text{sum of the digits of } n$ line 41 source

    Source documentation

    The function $f(n) = n + \text{sum of the digits of } n$.

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

    Statement uses: Nat

    Proof uses: HAdd.hAdd, OeisA100800.sumDigits

    2 instances, coercions and auxiliary constants left out.

    def f (n : ℕ) : ℕ := n + sumDigits n
    …

    Mentions: OeisA100800.sumDigits

  3. def OeisA100800.a a n is the first iteration of $f(n) = n + \text{sum of the digits of } n$ that is a multiple of $n$ line 48 source

    Source documentation

    a n is the first iteration of $f(n) = n + \text{sum of the digits of } n$ that is a multiple of $n$. $a(n) = 0$ if no such number exists.

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

    Statement uses: Nat

    Proof uses: Dvd.dvd, Nat.iterate, OeisA100800.f, HAdd.hAdd, OfNat.ofNat, dite, Exists, Classical.propDecidable, Nat.find, Not

    5 instances, coercions and auxiliary constants left out.

    noncomputable def a (n : ℕ) : ℕ :=
    …
  4. lemma OeisA100800.a_of_dvd If n already divides f n, the search stops immediately and a n = f n line 63 source

    Source documentation

    If n already divides f n, the search stops immediately and a n = f n.

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

    Statement uses: Nat, Dvd.dvd, OeisA100800.f, Eq, OeisA100800.a

    Proof uses: Exists, Nat.iterate, HAdd.hAdd, OfNat.ofNat, Exists.intro, Eq.mpr, id, congrArg, Eq.trans, congrFun', zero_add, congrFun, Function.iterate_one, Nat.find, Iff.mpr, Nat.find_eq_zero, dite, Classical.propDecidable, Not, OeisA100800.a.eq_1 and 4 more

    8 instances, coercions and auxiliary constants left out.

    Tactic trace: 6 steps

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

    lemma a_of_dvd {n : ℕ} (h : n ∣ f n) : a n = f n := by
    …

    Mentions: OeisA100800.f, OeisA100800.a

  5. theorem OeisA100800.a_1 Term theorems verifying the first few values of the sequence against the official OEIS b-file line 71 source

    Source documentation

    Term theorems verifying the first few values of the sequence against the official OEIS b-file

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

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

    Proof uses: Eq.mpr, OeisA100800.f, id, congrArg, OeisA100800.a_of_dvd, of_eq_true, Dvd.dvd, Eq.trans, True, IsUnit, Mathlib.Meta.NormNum.IsNat.to_eq, Mathlib.Meta.NormNum.isNat_ofNat, Nat.cast_one, Units, eq_true, Mathlib.Meta.NormNum.isNat_eq_true, Eq.refl, True.intro, congrFun', HAdd.hAdd and 21 more

    35 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

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

    theorem a_1 : a 1 = 2 := by rw [a_of_dvd (by norm_num)]; norm_num [f, sumDigits]
    …

    Mentions: OeisA100800.a, OeisA100800.a_of_dvd, OeisA100800.f, OeisA100800.sumDigits

  6. theorem OeisA100800.a_2 line 74 source

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

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

    Proof uses: Eq.mpr, OeisA100800.f, id, congrArg, OeisA100800.a_of_dvd, of_eq_true, Dvd.dvd, Eq.trans, True, HAdd.hAdd, OeisA100800.sumDigits, List.sum, Nat.digits, List.cons, List.nil, List, HMod.hMod, HDiv.hDiv, Nat.digits_of_two_le_of_pos, Mathlib.Meta.NormNum.isNat_le_true and 18 more

    24 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

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

  7. theorem OeisA100800.a_3 line 77 source

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

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

    Proof uses: Eq.mpr, OeisA100800.f, id, congrArg, OeisA100800.a_of_dvd, of_eq_true, Dvd.dvd, Eq.trans, True, HAdd.hAdd, OeisA100800.sumDigits, List.sum, Nat.digits, List.cons, List.nil, List, HMod.hMod, HDiv.hDiv, Nat.digits_of_two_le_of_pos, Mathlib.Meta.NormNum.isNat_le_true and 18 more

    24 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

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

  8. theorem OeisA100800.a_4 line 80 source

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

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

    Proof uses: Eq.mpr, OeisA100800.f, id, congrArg, OeisA100800.a_of_dvd, of_eq_true, Dvd.dvd, Eq.trans, True, HAdd.hAdd, OeisA100800.sumDigits, List.sum, Nat.digits, List.cons, List.nil, List, HMod.hMod, HDiv.hDiv, Nat.digits_of_two_le_of_pos, Mathlib.Meta.NormNum.isNat_le_true and 18 more

    24 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

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

  9. theorem OeisA100800.a_5 line 83 source

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

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

    Proof uses: Eq.mpr, OeisA100800.f, id, congrArg, OeisA100800.a_of_dvd, of_eq_true, Dvd.dvd, Eq.trans, True, HAdd.hAdd, OeisA100800.sumDigits, List.sum, Nat.digits, List.cons, List.nil, List, HMod.hMod, HDiv.hDiv, Nat.digits_of_two_le_of_pos, Mathlib.Meta.NormNum.isNat_le_true and 18 more

    24 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

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

  10. theorem OeisA100800.conjecture A100800 Conjecture: No term is zero sorry line 87 source

    Source documentation

    A100800 Conjecture: No term is zero.

    depends on sorry what this means

    Statement uses: Nat, Ne, OfNat.ofNat, OeisA100800.a

    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.

    theorem conjecture : ∀ (n : ℕ), n ≠ 0 → a n ≠ 0 := by
    …

    Mentions: OeisA100800.a