-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathproblem.lean
More file actions
60 lines (46 loc) · 2.56 KB
/
problem.lean
File metadata and controls
60 lines (46 loc) · 2.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import Mathlib
/-
# Problem Description
We define the notion of $m$-regular primes and a function $M_\alpha$ on primes.
The theorem states an asymptotic bound on primes that fail to be $M_\alpha(p)$-regular.
## Definitions
1. **Bernoulli numbers**: The $(2k)$-th Bernoulli number $B_{2k} \in \mathbb{Q}$ is defined via
the exponential generating function $\frac{t}{e^t - 1} = \sum_{n=0}^{\infty} B_n \frac{t^n}{n!}$.
2. **$m$-regular prime**: For $m \in \mathbb{N}$, a prime $p$ is $m$-regular if:
- $p$ is odd, and
- $p$ does not divide the numerator of $B_{2k}$ for each $k$ with $1 \le 2k \le \min(m, p-3)$.
3. **The function $M_\alpha$**: For $\alpha > 1/2$ and prime $p$,
$M_\alpha(p) := \lfloor \sqrt{p} / (\log p)^\alpha \rfloor$
## Main Theorem
For fixed $\alpha > 1/2$:
$\#\{ p \le X \text{ prime} : p \text{ is not } M_\alpha(p)\text{-regular} \} = O(X / (\log X)^{2\alpha})$
-/
-- Background: Bernoulli numbers are available in Mathlib as `bernoulli : ℕ → ℚ`.
-- The "numerator of B_{2k}" refers to the numerator when B_{2k} is written in lowest terms.
-- Main Definition 1: m-regular prime
/-- A prime `p` is `m`-regular if it is odd and does not divide the numerator of the
Bernoulli number `B_{2k}` for each `k` with `1 ≤ 2k ≤ min(m, p - 3)`. -/
def IsRegularPrime (m : ℕ) (p : ℕ) : Prop :=
Nat.Prime p ∧ Odd p ∧
∀ k : ℕ, 1 ≤ 2 * k → 2 * k ≤ min m (p - 3) →
¬((p : ℤ) ∣ (bernoulli (2 * k)).num)
-- Decidable instance for IsRegularPrime using classical logic
noncomputable instance decidable_IsRegularPrime (m : ℕ) (p : ℕ) : Decidable (IsRegularPrime m p) :=
Classical.propDecidable (IsRegularPrime m p)
-- Main Definition 2: The function M_α
/-- For a real number `α > 1/2` and a prime `p`, define
`M_α(p) = ⌊√p / (log p)^α⌋`. -/
noncomputable def M_alpha (α : ℝ) (p : ℕ) : ℕ :=
⌊Real.sqrt p / (Real.log p) ^ α⌋₊
-- Auxiliary: counting function for primes p ≤ X that are NOT M_α(p)-regular
/-- Count of primes `p ≤ X` that are not `M_α(p)`-regular. -/
noncomputable def countNonRegularPrimes (α : ℝ) (X : ℝ) : ℕ :=
((Finset.Icc 1 ⌊X⌋₊).filter (fun p =>
Nat.Prime p ∧ ¬IsRegularPrime (M_alpha α p) p)).card
-- Main Statement
/-- For fixed `α > 1/2`, the number of primes `p ≤ X` that are not `M_α(p)`-regular is
$O(X / (\log X)^{2α})$ as `X → +∞`. -/
theorem irregular_primes_asymptotic (α : ℝ) (hα : 1/2 < α) :
(fun X : ℝ => (countNonRegularPrimes α X : ℝ)) =O[Filter.atTop]
(fun X : ℝ => X / (Real.log X) ^ (2 * α)) := by
sorry