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

19 declarations, 3 contain sorry, 0 declared as axioms

Conjectures associated with A063880

A063880 lists numbers $n$ such that $\sigma(n) = 2 \cdot \text{usigma}(n)$, where $\sigma(n)$ is the sum of all divisors and $\text{usigma}(n)$ is the sum of unitary divisors.

Equivalently, these are numbers whose unitary and non-unitary divisors have equal sum.

The conjectures state that all members satisfy $n \equiv 108 \pmod{216}$, and that all primitive terms (those whose proper divisors aren't in the sequence) are powerful numbers, with $108$ being the only primitive term.

References:

Imports (1)
Imported by 2 files
  1. def OeisA63880.unitaryDivisors The set of unitary divisors of $n$: divisors $d$ such that $\gcd(d, n/d) = 1$ line 43 source

    Source documentation

    The set of unitary divisors of $n$: divisors $d$ such that $\gcd(d, n/d) = 1$.

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

    Statement uses: Nat, Finset

    Proof uses: Finset.filter, Nat.Coprime, HDiv.hDiv, Nat.divisors

    3 instances, coercions and auxiliary constants left out.

    def unitaryDivisors (n : ℕ) : Finset ℕ :=
    …
  2. def OeisA63880.usigma The sum of unitary divisors of $n$, denoted $\text{usigma}(n)$ line 47 source

    Source documentation

    The sum of unitary divisors of $n$, denoted $\text{usigma}(n)$.

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

    Statement uses: Nat

    Proof uses: Finset.sum, OeisA63880.unitaryDivisors

    1 instances, coercions and auxiliary constants left out.

    def usigma (n : ℕ) : ℕ :=
    …
  3. def OeisA63880.A A number $n$ is in the sequence A063880 if $\sigma(n) = 2 \cdot \text{usigma}(n)$ line 51 source

    Source documentation

    A number $n$ is in the sequence A063880 if $\sigma(n) = 2 \cdot \text{usigma}(n)$.

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

    Statement uses: Nat

    Proof uses: And, LT.lt, OfNat.ofNat, Eq, ArithmeticFunction, ArithmeticFunction.sigma, HMul.hMul, OeisA63880.usigma

    8 instances, coercions and auxiliary constants left out.

    def A (n : ℕ) : Prop :=
    …
  4. abbrev OeisA63880.IsPrimitiveTerm A term $n$ is primitive if no proper divisor of $n$ is in the sequence line 55 source

    Source documentation

    A term $n$ is primitive if no proper divisor of $n$ is in the sequence.

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

    Statement uses: Nat

    Proof uses: Set.IsPrimitive, Set.ofPred, OeisA63880.A

    abbrev IsPrimitiveTerm (n : ℕ) : Prop := {n | A n}.IsPrimitive n
    …

    Mentions: OeisA63880.A

  5. theorem OeisA63880.a_108 $108$ is in the sequence A063880 line 59 source

    Source documentation

    $108$ is in the sequence A063880.

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

    Statement uses: OeisA63880.A, OfNat.ofNat, Nat

    Proof uses: And.intro, LT.lt, Eq, ArithmeticFunction, ArithmeticFunction.sigma, HMul.hMul, OeisA63880.usigma, Mathlib.Meta.NormNum.isNat_lt_true, Mathlib.Meta.NormNum.isNat_ofNat, Eq.refl, Bool, Bool.false, of_decide_eq_true, id, Decidable.decide, Bool.true

    18 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

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

    theorem a_108 : A 108 := by
    …

    Mentions: OeisA63880.A

  6. theorem OeisA63880.a_540 $540$ is in the sequence A063880 line 65 source

    Source documentation

    $540$ is in the sequence A063880.

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

    Statement uses: OeisA63880.A, OfNat.ofNat, Nat

    Proof uses: And.intro, LT.lt, Eq, ArithmeticFunction, ArithmeticFunction.sigma, HMul.hMul, OeisA63880.usigma, Mathlib.Meta.NormNum.isNat_lt_true, Mathlib.Meta.NormNum.isNat_ofNat, Eq.refl, Bool, Bool.false, of_decide_eq_true, id, Decidable.decide, Bool.true

    18 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

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

    theorem a_540 : A 540 := by
    …

    Mentions: OeisA63880.A

  7. theorem OeisA63880.a_756 $756$ is in the sequence A063880 line 71 source

    Source documentation

    $756$ is in the sequence A063880.

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

    Statement uses: OeisA63880.A, OfNat.ofNat, Nat

    Proof uses: And.intro, LT.lt, Eq, ArithmeticFunction, ArithmeticFunction.sigma, HMul.hMul, OeisA63880.usigma, Mathlib.Meta.NormNum.isNat_lt_true, Mathlib.Meta.NormNum.isNat_ofNat, Eq.refl, Bool, Bool.false, of_decide_eq_true, id, Decidable.decide, Bool.true

    18 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

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

    theorem a_756 : A 756 := by
    …

    Mentions: OeisA63880.A

  8. theorem OeisA63880.isPrimitiveTerm_108 $108$ is a primitive term line 77 source

    Source documentation

    $108$ is a primitive term.

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

    Statement uses: OeisA63880.IsPrimitiveTerm, OfNat.ofNat, Nat

    Proof uses: Eq.mpr, Set.IsPrimitive, Set.ofPred, OeisA63880.A, id, Eq, congrArg, OeisA63880.IsPrimitiveTerm.eq_1, And, Membership.mem, Set, Finset, Nat.properDivisors, Not, propext, Set.isPrimitive_iff, And.intro, OeisA63880.a_108, Dvd.dvd, LT.lt and 33 more

    61 instances, coercions and auxiliary constants left out.

    Tactic trace: 7 steps

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

    theorem isPrimitiveTerm_108 : IsPrimitiveTerm 108 := by
    …

    Mentions: OeisA63880.IsPrimitiveTerm

  9. theorem OeisA63880.mod_216_of_a All members of the sequence satisfy $n \equiv 108 \pmod{216}$ sorry line 86 source

    Source documentation

    All members of the sequence satisfy $n \equiv 108 \pmod{216}$.

    depends on sorry what this means

    Statement uses: Nat, OeisA63880.A, Eq, HMod.hMod, OfNat.ofNat

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

    6 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem mod_216_of_a {n : ℕ} (h : A n) : n % 216 = 108 := by
    …

    Mentions: OeisA63880.A

  10. theorem OeisA63880.unitaryDivisors_mul_prime The unitary divisors of m * p, for a prime p not dividing m > 0, are the unitary divisors of m and their multiples by p line 92 source

    Source documentation

    The unitary divisors of m * p, for a prime p not dividing m > 0, are the unitary divisors of m and their multiples by p.

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

    Statement uses: Nat, LT.lt, OfNat.ofNat, Nat.Prime, Not, Dvd.dvd, Eq, Finset, OeisA63880.unitaryDivisors, HMul.hMul, Union.union, Finset.image

    Proof uses: Nat.Prime.pos, Nat.Coprime, Iff.mpr, Nat.Prime.coprime_iff_not_dvd, Finset.ext, Eq.mpr, Iff, Membership.mem, And, Ne, HDiv.hDiv, Or, Exists, id, congr, congrArg, Eq.trans, Finset.filter, Nat.divisors, congrFun' and 32 more

    44 instances, coercions and auxiliary constants left out.

    Tactic trace: 48 steps

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

    theorem unitaryDivisors_mul_prime {m p : ℕ} (hm : 0 < m) (hp : p.Prime) (hpm : ¬ p ∣ m) :
        unitaryDivisors (m * p) =
          unitaryDivisors m ∪ (unitaryDivisors m).image (· * p) := by
    …

    Mentions: OeisA63880.unitaryDivisors

  11. theorem OeisA63880.usigma_mul_prime usigma is multiplicative at a prime not dividing the argument line 142 source

    Source documentation

    usigma is multiplicative at a prime not dividing the argument.

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

    Statement uses: Nat, LT.lt, OfNat.ofNat, Nat.Prime, Not, Dvd.dvd, Eq, OeisA63880.usigma, HMul.hMul, HAdd.hAdd

    Proof uses: Disjoint, Finset, OeisA63880.unitaryDivisors, Finset.image, Eq.mpr, Membership.mem, id, congrArg, propext, Finset.disjoint_left, And, Exists, False, Iff.mp, Finset.mem_image, And.left, Ne, Nat.divisors, Nat.mem_divisors, Nat.Coprime and 19 more

    51 instances, coercions and auxiliary constants left out.

    Tactic trace: 8 steps

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

    theorem usigma_mul_prime {m p : ℕ} (hm : 0 < m) (hp : p.Prime) (hpm : ¬ p ∣ m) :
        usigma (m * p) = usigma m * (p + 1) := by
    …

    Mentions: OeisA63880.usigma

  12. theorem OeisA63880.sigma_mul_prime σ is multiplicative at a prime not dividing the argument line 157 source

    Source documentation

    σ is multiplicative at a prime not dividing the argument.

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

    Statement uses: Nat, Nat.Prime, Not, Dvd.dvd, Eq, ArithmeticFunction, ArithmeticFunction.sigma, OfNat.ofNat, HMul.hMul, HAdd.hAdd

    Proof uses: HPow.hPow, Finset.sum, Finset.range, ArithmeticFunction.sigma_one_apply_prime_pow, Decidable.byContradiction, Eq.mp, congr, congrArg, pow_one, Eq.trans, Finset.sum_range_succ, Singleton.singleton, Finset, Finset.sum_singleton, pow_zero, Eq.mpr, id, ArithmeticFunction.IsMultiplicative.map_mul_of_coprime, ArithmeticFunction.isMultiplicative_sigma, Nat.Coprime.symm and 4 more

    40 instances, coercions and auxiliary constants left out.

    Tactic trace: 5 steps

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

    theorem sigma_mul_prime {m p : ℕ} (hp : p.Prime) (hpm : ¬ p ∣ m) :
        σ 1 (m * p) = σ 1 m * (p + 1) := by
    …
  13. theorem OeisA63880.A_mul_prime Membership in the sequence is preserved by multiplying with a prime not dividing the term line 168 source

    Source documentation

    Membership in the sequence is preserved by multiplying with a prime not dividing the term.

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

    Statement uses: Nat, OeisA63880.A, Nat.Prime, Not, Dvd.dvd, HMul.hMul

    Proof uses: And.intro, LT.lt, OfNat.ofNat, Eq, ArithmeticFunction, ArithmeticFunction.sigma, OeisA63880.usigma, Nat.mul_pos, And.left, Nat.Prime.pos, Eq.mpr, HAdd.hAdd, id, congrArg, OeisA63880.sigma_mul_prime, OeisA63880.usigma_mul_prime, And.right, Mathlib.Tactic.Ring.of_eq, HPow.hPow, Nat.rawCast and 21 more

    29 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    theorem A_mul_prime {m p : ℕ} (hA : A m) (hp : p.Prime) (hpm : ¬ p ∣ m) : A (m * p) :=
    …

    Mentions: OeisA63880.A

  14. theorem OeisA63880.A_of_mul_prime Conversely, if m * p is in the sequence with p a prime not dividing m > 0, so is m line 174 source

    Source documentation

    Conversely, if m * p is in the sequence with p a prime not dividing m > 0, so is m.

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

    Statement uses: Nat, LT.lt, OfNat.ofNat, OeisA63880.A, HMul.hMul, Nat.Prime, Not, Dvd.dvd

    Proof uses: And.intro, Eq, ArithmeticFunction, ArithmeticFunction.sigma, OeisA63880.usigma, And.right, Nat.eq_of_mul_eq_mul_right, HAdd.hAdd, Decidable.byContradiction, Eq.mp, congrArg, Eq.symm, mul_assoc, OeisA63880.usigma_mul_prime, OeisA63880.sigma_mul_prime

    20 instances, coercions and auxiliary constants left out.

    Tactic trace: 5 steps

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

    theorem A_of_mul_prime {m p : ℕ} (hm : 0 < m) (hA : A (m * p)) (hp : p.Prime) (hpm : ¬ p ∣ m) :
        A m := by
    …

    Mentions: OeisA63880.A

  15. theorem OeisA63880.A_mul_of_squarefree Membership in the sequence is preserved by multiplying with a coprime squarefree number line 183 source

    Source documentation

    Membership in the sequence is preserved by multiplying with a coprime squarefree number.

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

    Statement uses: Nat, OeisA63880.A, Squarefree, Nat.Coprime, HMul.hMul

    Proof uses: Nat.recOnPrimeCoprime, OfNat.ofNat, absurd, not_squarefree_zero, Nat.Prime, HPow.hPow, LE.le, Decidable.byContradiction, Not, False, Iff.mpr, And, Eq, Iff.not, Nat.squarefree_pow_iff, Nat.Prime.ne_one, dite, Eq.mpr, id, congrArg and 26 more

    29 instances, coercions and auxiliary constants left out.

    Tactic trace: 18 steps

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

    theorem A_mul_of_squarefree (s : ℕ) :
        ∀ m, A m → Squarefree s → m.Coprime s → A (m * s) := by
    …

    Mentions: OeisA63880.A

  16. theorem OeisA63880.powerful_of_isPrimitiveTerm All primitive terms are powerful numbers: if p divided n exactly once, then n / p would also be in the sequence line 205 source

    Source documentation

    All primitive terms are powerful numbers: if p divided n exactly once, then n / p would also be in the sequence.

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

    Statement uses: Nat, OeisA63880.IsPrimitiveTerm, Nat.Powerful

    Proof uses: Membership.mem, Finset, Nat.primeFactors, Decidable.byContradiction, Dvd.dvd, HPow.hPow, OfNat.ofNat, Not, Nat.dvd_of_mem_primeFactors, Nat.Prime, Nat.prime_of_mem_primeFactors, LT.lt, And.left, Eq, ArithmeticFunction, ArithmeticFunction.sigma, HMul.hMul, OeisA63880.usigma, Set.IsPrimitive.mem, Set.ofPred and 85 more

    118 instances, coercions and auxiliary constants left out.

    Tactic trace: 16 steps

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

    theorem powerful_of_isPrimitiveTerm {n : ℕ} (h : IsPrimitiveTerm n) : n.Powerful := by
    …

    Mentions: OeisA63880.IsPrimitiveTerm

  17. theorem OeisA63880.unique_primitive_108 $108$ is the only primitive term sorry line 220 source

    Source documentation

    $108$ is the only primitive term.

    depends on sorry what this means

    Statement uses: Nat, OeisA63880.IsPrimitiveTerm, Eq, 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.

    theorem unique_primitive_108 {n : ℕ} (h : IsPrimitiveTerm n) : n = 108 := by
    …

    Mentions: OeisA63880.IsPrimitiveTerm

  18. theorem OeisA63880.a_of_primitive_mul_squarefree If $m$ is a primitive term and $s$ is squarefree with $\gcd(m, s) = 1$, then $m \cdot s$ is in the sequence line 226 source

    Source documentation

    If $m$ is a primitive term and $s$ is squarefree with $\gcd(m, s) = 1$, then $m \cdot s$ is in the sequence.

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

    Statement uses: Nat, OeisA63880.IsPrimitiveTerm, Squarefree, Nat.Coprime, OeisA63880.A, HMul.hMul

    Proof uses: OeisA63880.A_mul_of_squarefree, Set.IsPrimitive.mem, Set.ofPred

    4 instances, coercions and auxiliary constants left out.

    theorem a_of_primitive_mul_squarefree (m s : ℕ) (hm : IsPrimitiveTerm m)
        (hs : Squarefree s) (hcoprime : m.Coprime s) : A (m * s) :=
    …

    Mentions: OeisA63880.IsPrimitiveTerm, OeisA63880.A

  19. theorem OeisA63880.exists_primitive_of_a Non-primitive terms have the form $m \cdot s$ where $m$ is primitive and $s$ is squarefree with $\gcd(m, s) = 1$ sorry line 233 source

    Source documentation

    Non-primitive terms have the form $m \cdot s$ where $m$ is primitive and $s$ is squarefree with $\gcd(m, s) = 1$.

    depends on sorry what this means

    Statement uses: Nat, OeisA63880.A, Exists, And, OeisA63880.IsPrimitiveTerm, Squarefree, Nat.Coprime, Eq, HMul.hMul

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

    7 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem exists_primitive_of_a {n : ℕ} (h : A n) :
        ∃ m s, IsPrimitiveTerm m ∧ Squarefree s ∧ m.Coprime s ∧ n = m * s := by
    …

    Mentions: OeisA63880.A, OeisA63880.IsPrimitiveTerm