FormalConjectures/Paper/Kurepa.lean
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
8 declarations, 3 contain sorry, 0 declared as axioms
Kurepa's conjecture
Reference: On the left factorial function !N, by Đuro Kurepa Math. Balkanica 1, p. 147-153, 1971
Imports (1)
- def
Kurepa.left_factorialLeft factorial of n $$!n = 0! + 1! + 2! + \dots + (n-1)!$$ line 36 sourceSource documentation
Left factorial of n $$!n = 0! + 1! + 2! + \dots + (n-1)!$$
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
NatProof uses:
Finset.sum,Finset.range,Nat.factorial1 instances, coercions and auxiliary constants left out.
def left_factorial (n : ℕ) := ∑ m ∈ Finset.range n, m ! …
- theorem
Kurepa.kurepa_conjectureKurepa's conjecture For all $n$, $$!n\not\equiv 0 \mod n$$ This appears as B44 "Sums of factorials." in Unsolved Problems in Number Theory by *Richard K sorry line 50 sourceSource documentation
Kurepa's conjecture
For all $n$, $$!n\not\equiv 0 \mod n$$
This appears as B44 "Sums of factorials." in Unsolved Problems in Number Theory by Richard K. Guy
L4DEL explanation
## Kurepa's conjecture For all $n$, $$!n\not\equiv 0 \mod n$$ This appears as B44 "Sums of factorials." in Unsolved Problems in Number Theory by Richard K. Guy
Sources and attribution: Pinned Lean source (1646ca16afd6)
depends on sorry what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Ne,HMod.hMod, Kurepa.left_factorialProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous8 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem kurepa_conjecture (n : ℕ) (h_n : 2 < n) : (!n : ℕ) % n ≠ 0 := by …
- theorem
Kurepa.kurepa_conjecture.variants.primeThis statement can be reduced to the prime case only sorry line 57 sourceSource documentation
This statement can be reduced to the prime case only.
depends on sorry what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Nat.Prime,Ne,HMod.hMod, Kurepa.left_factorialProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous8 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem kurepa_conjecture.variants.prime (p : ℕ) (h_p : 2 < p) : p.Prime → (!p : ℕ) % p ≠ 0 := by … - theorem
Kurepa.kurepa_conjecture.prime_reductionKurepa's conjecture for all integers greater than 2 is equivalent to the conjecture restricted to primes greater than 2 line 65 sourceSource documentation
Kurepa's conjecture for all integers greater than 2 is equivalent to the conjecture restricted to primes greater than 2.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Iff,Nat,LT.lt,OfNat.ofNat,Ne,HMod.hMod, Kurepa.left_factorial,Nat.PrimeProof uses:
Iff.intro,Eq,List.prod,Nat.primeFactorsList,Membership.mem,List,Nat.prime_of_mem_primeFactorsList,Or.resolve_right,Nat.Prime.eq_two_or_odd,Dvd.dvd,Finset.sum,Finset.range,Nat.factorial,Dvd.dvd.trans,of_eq_true,Nat.dvd_of_mem_primeFactorsList,Nat.dvd_of_mod_eq_zero,LE.le,Finset,Eq.mprand 113 more152 instances, coercions and auxiliary constants left out.
Tactic trace: 22 steps
Open to load the checked before-and-after goal states.
theorem kurepa_conjecture.prime_reduction : (∀ n, 2 < n → (!n : ℕ) % n ≠ 0) ↔ (∀ p, 2 < p → p.Prime → (!p : ℕ) % p ≠ 0) := by … - theorem
Kurepa.kurepa_conjecture.variants.gcdAn equivalent formulation in terms of the gcd of $n!$ and $!n$ sorry line 96 sourceSource documentation
An equivalent formulation in terms of the gcd of $n!$ and $!n$.
depends on sorry what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Eq,Nat.gcd,Nat.factorial, Kurepa.left_factorialProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous4 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem kurepa_conjecture.variants.gcd (n : ℕ) : 2 < n → (n !).gcd (! n) = 2 := by …
- theorem
Kurepa.kurepa_conjecture.gcd_reductionKurepa's conjecture for all integers greater than 2 is equivalent to the statement that $\gcd(n!, !n) = 2$ for all integers greater than 2 line 103 sourceSource documentation
Kurepa's conjecture for all integers greater than 2 is equivalent to the statement that $\gcd(n!, !n) = 2$ for all integers greater than 2.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Iff,Nat,LT.lt,OfNat.ofNat,Ne,HMod.hMod, Kurepa.left_factorial,Eq,Nat.gcd,Nat.factorialProof uses:
Iff.intro,HAdd.hAdd,Iff.mpr,And,Dvd.dvd,Nat.gcd_eq_iff,And.intro,Nat.factorial_dvd_factorial,LT.lt.le,of_eq_true,Eq.trans,Finset.sum,Finset.range,True,congrArg,Finset.sum_range_succ',congrFun',zero_add,Nat.add_mod,congrand 51 more91 instances, coercions and auxiliary constants left out.
Tactic trace: 22 steps
Open to load the checked before-and-after goal states.
theorem kurepa_conjecture.gcd_reduction : (∀ n, 2 < n → (!n : ℕ) % n ≠ 0) ↔ (∀ n, 2 < n → (n)!.gcd (!n) = 2) := by … - theorem
Kurepa.kurepa_conjecture.variants.first_casesSanity check: for small values we can just compute that the conjecture is true line 133 sourceSource documentation
Sanity check: for small values we can just compute that the conjecture is true
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Ne,HMod.hMod, Kurepa.left_factorialProof uses:
dite,LE.le,of_decide_eq_true,Eq,id,Bool,Decidable.decide,Bool.true,Eq.refl,Eq.symm,le_antisymm,Nat.ge_of_not_lt,Mathlib.Tactic.IntervalCases.of_lt_right,Nat.rawCast,Mathlib.Meta.NormNum.IsNat.to_raw_eq,Mathlib.Meta.NormNum.isNat_ofNat,Not,Nat.gt_of_not_le,Mathlib.Tactic.IntervalCases.of_lt_left16 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
theorem kurepa_conjecture.variants.first_cases (n : ℕ) (h_n : 2 < n) (h_n_upper : n < 50) : (!n : ℕ) % n ≠ 0 := by … - theorem
Kurepa.kurepa_conjecture.variants.gcd.first_casesSanity check: for small values we can just compute that the conjecture is true line 141 sourceSource documentation
Sanity check: for small values we can just compute that the conjecture is true.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Eq,Nat.gcd,Nat.factorial, Kurepa.left_factorialProof uses:
dite,LE.le,of_decide_eq_true,id,Bool,Decidable.decide,Bool.true,Eq.refl,Eq.symm,le_antisymm,Nat.ge_of_not_lt,Mathlib.Tactic.IntervalCases.of_lt_right,Nat.rawCast,Mathlib.Meta.NormNum.IsNat.to_raw_eq,Mathlib.Meta.NormNum.isNat_ofNat,Not,Nat.gt_of_not_le,Mathlib.Tactic.IntervalCases.of_lt_left11 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
theorem kurepa_conjecture.variants.gcd.first_cases (n : ℕ) (h_n : 2 < n) (h_n_upper : n < 50) : (n !).gcd (! n) = 2 := by …Mentions: Kurepa.kurepa_conjecture.variants.gcd