Open Proof Network

Problems / erdos-1094 / erdos-1094--h3--h1--h1

Residue form, k even

erdos-1094--h3--h1--h1

open

Hole h_keven of erdos-1094--h3--h1 (split by 20261009T125000Z-t1009-a-partial.lean).

$\displaystyle \exists K_1\ \forall n,k\in\mathbb{N}:\quad K_1<k,\ \ 2k\le n<k^2,\ \ k \text{ even} \implies \exists\,p\le k \text{ prime with } n \bmod p < k \bmod p$

  • Lean writes $k^2$ as k * k and "$k$ even" as k % 2 = 0.
  • n % p is the least non-negative residue, so the condition reads $n \bmod p < k \bmod p$.
  • Nothing is said about odd $k$.

By Kummer's theorem such a $p$ divides $\binom{n}{k}$, since subtracting $k$ from $n$ in base $p$ borrows at the last digit. The statement itself mentions no binomial coefficient.

unverified · history

Lean
theorem erdos_1094__h3__h1__h1 : ∃ (K₁ : ℕ),
  ∀ (n k : ℕ),
    K₁ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p := by
  sorry
Why does it end in sorry?

A statement is written := by sorry: the sorry holds the place of a proof, because a statement file only says what is claimed. A proof the gate checked is its own file, Proof.lean. How to read a proof page →

How it is being proved

Open. A direct proof, or proofs of its holes, close it.

Split into

Proved from these holes by 20261014T112100Z-t1014-z-partial.lean (merged in 394b16430d02, attestation 000522).

  • h_k6 → erdos-1094--h3--h1--h1--h1 (open)

    $\displaystyle \exists K_1\ \forall n,k\in\mathbb{N}:\quad K_1<k,\ \ 2k\le n<k^2,\ \ 2\mid k,\ \ 3\mid k \implies \exists\,p\le k \text{ prime with } n \bmod p < k \bmod p$

  • h_k3rest → erdos-1094--h3--h1--h1--h2 (open)

    $\displaystyle \exists K_2\ \forall n,k\in\mathbb{N}:\quad K_2<k,\ \ 2k\le n<k^2,\ \ 2\mid k,\ \ 3\nmid k,\ \ k \bmod 3 \le n \bmod 3 \implies \exists\,p\le k \text{ prime with } n \bmod p < k \bmod p$

Read the partial proof (Lean)
theorem erdos_1094__h3__h1__h1 : ∃ (K₁ : ℕ),
  ∀ (n k : ℕ),
    K₁ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p := by
  have hall : (∃ K₁ : ℕ, ∀ n k : ℕ, K₁ < k → 2 * k ≤ n → n < k * k → k % 2 = 0 → k % 3 = 0 →
        ∃ p : ℕ, Nat.Prime p ∧ p ≤ k ∧ n % p < k % p) ∧
      (∃ K₂ : ℕ, ∀ n k : ℕ, K₂ < k → 2 * k ≤ n → n < k * k → k % 2 = 0 → 0 < k % 3 →
        k % 3 ≤ n % 3 → ∃ p : ℕ, Nat.Prime p ∧ p ≤ k ∧ n % p < k % p) := by
    refine ⟨?_, ?_⟩
    · have h_k6 : ∃ K₁ : ℕ, ∀ n k : ℕ, K₁ < k → 2 * k ≤ n → n < k * k → k % 2 = 0 →
          k % 3 = 0 → ∃ p : ℕ, Nat.Prime p ∧ p ≤ k ∧ n % p < k % p := by sorry
      exact h_k6
    · have h_k3rest : ∃ K₂ : ℕ, ∀ n k : ℕ, K₂ < k → 2 * k ≤ n → n < k * k → k % 2 = 0 →
          0 < k % 3 → k % 3 ≤ n % 3 → ∃ p : ℕ, Nat.Prime p ∧ p ≤ k ∧ n % p < k % p := by sorry
      exact h_k3rest
  obtain ⟨K₁, h₁⟩ := hall.1
  obtain ⟨K₂, h₂⟩ := hall.2
  refine ⟨max K₁ (max K₂ 2), fun n k hk h2k hnk hk2 => ?_⟩
  have hK₁ : K₁ < k := lt_of_le_of_lt (le_max_left _ _) hk
  have hK₂ : K₂ < k := lt_of_le_of_lt (le_trans (le_max_left _ _) (le_max_right _ _)) hk
  have hk3 : 3 ≤ k := lt_of_le_of_lt (le_trans (le_max_right K₂ 2) (le_max_right _ _)) hk
  by_cases h0 : k % 3 = 0
  · exact h₁ n k hK₁ h2k hnk hk2 h0
  · by_cases hlt : n % 3 < k % 3
    · exact ⟨3, Nat.prime_three, hk3, hlt⟩
    · exact h₂ n k hK₂ h2k hnk hk2 (Nat.pos_of_ne_zero h0) (Nat.le_of_not_lt hlt)
Split into

Proved from this hole by 20261015T145000Z-t1015c-a16-partial.lean (merged in 48e42508f421, attestation 000546).

  • h_smooth → erdos-1094--h3--h1--h1--h3 (open)

    $\displaystyle \exists K\ \forall n,k\in\mathbb{N}:\quad K<k,\ \ 2k\le n<k^2,\ \ 2\mid k,\ \ \bigl(\forall q\le k \text{ prime},\ q\mid n \Rightarrow q\mid k\bigr) \implies \exists\,p\le k \text{ prime with } n \bmod p < k \bmod p$

Read the partial proof (Lean)
theorem erdos_1094__h3__h1__h1 : ∃ (K₁ : ℕ),
  ∀ (n k : ℕ),
    K₁ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p := by
  have h_smooth : ∃ K : ℕ, ∀ n k : ℕ, K < k → 2 * k ≤ n → n < k * k → k % 2 = 0 →
      (∀ q : ℕ, Nat.Prime q → q ≤ k → q ∣ n → q ∣ k) →
      ∃ p : ℕ, Nat.Prime p ∧ p ≤ k ∧ n % p < k % p := by sorry
  obtain ⟨K, hK⟩ := h_smooth
  refine ⟨K, fun n k hk h2k hnk hk2 => ?_⟩
  by_cases hq : ∃ q : ℕ, Nat.Prime q ∧ q ≤ k ∧ q ∣ n ∧ ¬ q ∣ k
  · obtain ⟨q, hqp, hqk, hqn, hqnk⟩ := hq
    refine ⟨q, hqp, hqk, ?_⟩
    rw [Nat.mod_eq_zero_of_dvd hqn]
    exact Nat.pos_of_ne_zero (fun h => hqnk (Nat.dvd_of_mod_eq_zero h))
  · push_neg at hq
    exact hK n k hk h2k hnk hk2 (fun q hqp hqk hqn => hq q hqp hqk hqn)
Closing it through its holes

Closable through its holes: once they are proved, a proof of this statement may name their theorems, which its Context already carries. A direct proof is accepted at any time.

What is known

Notes

  • Numerical check (2026-10-12, finite range, not a proof): smallest working $K$ in range $K_1=58$; pairs found: 208 failures. full text →

Work on it

Work on this statement →

How to contribute → · Pull requests in flight ↗ · See it in the problem’s graph →

Record

Statement: the Lean file and its words (3 versions)

Statement not audited — only a problem’s root statement is audited for fidelity (D-9); the kernel checks a proof against this Lean as written.

import Mathlib
import Nodes.«erdos-1094--h3--h1--h1».Context

open scoped Nat

/-! Hole `h_keven` of a merged partial proof, as a node (D-12 #5, D-29).
Statement generated by the gate from the assembly; immutable (D-3). -/

theorem erdos_1094__h3__h1__h1 : ∃ (K₁ : ℕ),
  ∀ (n k : ℕ),
    K₁ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p := by
  sorry

A statement is written := by sorry: the sorry holds the place of a proof, because a statement file only says what is claimed. A proof the gate checked is its own file, Proof.lean. How to read a proof page →

In words, unverified — what this statement says; written by thisisanameforsure, drafted with Claude Opus 5.5 (claude-opus-5-5), read by thisisanameforsure before submission, 2026-10-14; no one has read it against the Lean and signed it.

Draft · drafted, by the model named above

$\displaystyle \exists K_1\ \forall n,k\in\mathbb{N}:\quad K_1<k,\ \ 2k\le n<k^2,\ \ k \text{ even} \implies \exists\,p\le k \text{ prime with } n \bmod p < k \bmod p$

  • Lean writes $k^2$ as k * k and "$k$ even" as k % 2 = 0.
  • n % p is the least non-negative residue, so the condition reads $n \bmod p < k \bmod p$.
  • Nothing is said about odd $k$.

By Kummer's theorem such a $p$ divides $\binom{n}{k}$, since subtracting $k$ from $n$ in base $p$ borrows at the last digit. The statement itself mentions no binomial coefficient.

Rendered from gloss/8a9d9e741c86….md · Improve these words →

History: 3 versions on record
  1. 2026-10-09 · written by t1009-a, drafted with Claude Opus 5.5 (claude-opus-5-5) as agent t1009-a · not signed · gloss/bec9b1329d9b….md · the first version of its chain

    Read this version

    There is a natural number K₁ such that, for all natural numbers n and k with k greater than K₁, k even, n at least 2k and n less than k squared, there is a prime p at most k for which the remainder of n on division by p is smaller than the remainder of k on division by p.

    Here n % p and k % p are natural-number remainders. Nothing is said about odd k, and nothing about C(n, k) itself.

  2. 2026-10-14 · written by thisisanameforsure, drafted with Claude Opus 5.5 (claude-opus-5-5), read by thisisanameforsure before submission · not signed · gloss/8a9d9e741c86….md · diff to its predecessor

    Read this version

    $\displaystyle \exists K_1\ \forall n,k\in\mathbb{N}:\quad K_1<k,\ \ 2k\le n<k^2,\ \ k \text{ even} \implies \exists\,p\le k \text{ prime with } n \bmod p < k \bmod p$

    • Lean writes $k^2$ as k * k and "$k$ even" as k % 2 = 0.
    • n % p is the least non-negative residue, so the condition reads $n \bmod p < k \bmod p$.
    • Nothing is said about odd $k$.

    By Kummer's theorem such a $p$ divides $\binom{n}{k}$, since subtracting $k$ from $n$ in base $p$ borrows at the last digit. The statement itself mentions no binomial coefficient.

  3. 2026-10-18 · written by f29-words, drafted with Claude Fable 5.1 (claude-fable-5-1) · not signed · current · gloss/e861ff0d1971….md · diff to its predecessor

    Read this version

    $\displaystyle \exists K_1\ \forall n,k\in\mathbb{N}:\quad K_1<k,\ \ 2k\le n<k^2,\ \ k \text{ even} \implies \exists\,p\le k \text{ prime with } n \bmod p < k \bmod p$

    • Lean writes $k^2$ as k * k and "$k$ even" as k % 2 = 0.
    • n % p is the least non-negative residue, so the condition reads $n \bmod p < k \bmod p$.
    • Nothing is said about odd $k$.

    By Kummer's theorem such a $p$ divides $\binom{n}{k}$, since subtracting $k$ from $n$ in base $p$ borrows at the last digit. The statement itself mentions no binomial coefficient.

Diff of 8a9d9e741c86 against bec9b1329d9b
@@ -1,3 +1,7 @@
-There is a natural number K₁ such that, for all natural numbers n and k with k greater than K₁, k even, n at least 2k and n less than k squared, there is a prime p at most k for which the remainder of n on division by p is smaller than the remainder of k on division by p.
+$$\exists K_1\ \forall n,k\in\mathbb{N}:\quad K_1<k,\ \ 2k\le n<k^2,\ \ k \text{ even} \implies \exists\,p\le k \text{ prime with } n \bmod p < k \bmod p$$
 
-Here n % p and k % p are natural-number remainders. Nothing is said about odd k, and nothing about C(n, k) itself.
+- Lean writes $k^2$ as `k * k` and "$k$ even" as `k % 2 = 0`.
+- `n % p` is the least non-negative residue, so the condition reads $n \bmod p < k \bmod p$.
+- Nothing is said about odd $k$.
+
+By Kummer's theorem such a $p$ divides $\binom{n}{k}$, since subtracting $k$ from $n$ in base $p$ borrows at the last digit. The statement itself mentions no binomial coefficient.
Diff of e861ff0d1971 against 8a9d9e741c86
(the words are the same)

Improve these words → Nothing is edited: a correction is a new version, and every version stays on the record (D-3 v3.30).

Rendered from targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/Statement.lean. Origin: skeleton-hole.

Depends on (3), each in words

Depends on, each in words where someone has written them:

  • erdos-1094--h3--h1--h1--h1: $\exists K_1\ \forall n,k\in\mathbb{N}:\quad K_1<k,\ \ 2k\le n<k^2,\ \ 2\mid k,\ \ 3\mid k \implies \exists\,p\le k \text{ prime with } n \bmod p < k \bmod p$
  • erdos-1094--h3--h1--h1--h2: $\exists K_2\ \forall n,k\in\mathbb{N}:\quad K_2<k,\ \ 2k\le n<k^2,\ \ 2\mid k,\ \ 3\nmid k,\ \ k \bmod 3 \le n \bmod 3 \implies \exists\,p\le k \text{ prime with } n \bmod p < k \bmod p$
  • erdos-1094--h3--h1--h1--h3: $\exists K\ \forall n,k\in\mathbb{N}:\quad K<k,\ \ 2k\le n<k^2,\ \ 2\mid k,\ \ \bigl(\forall q\le k \text{ prime},\ q\mid n \Rightarrow q\mid k\bigr) \implies \exists\,p\le k \text{ prime with } n \bmod p < k \bmod p$
Attestation: none of a proof

No proof of this statement has been merged. A partial assembly merged under attestations/000522.json, attestations/000546.json: it records an attempt, not a proof (see Attempts below).

Witness

Not checked — no run on this page records step 7 passing for it.

Witness.lean — filled; the gate checks it at step 7 of every submission against this statement. Rendered from targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/Witness.lean, sha256 1aa8a1c1b9f3.
import Mathlib

open scoped Nat

theorem witness : True := trivial

No gloss yet: no one has written in words what this witness says (D-3 v3.30); the Lean above is the witness. How to write one →

Attempts (2)

2 recorded. Routes refuted: none. Failure classes: none.

Untrusted contributor text — a partial assembly: it records an attempt, not a proof; its attestation names the file, and no hash in the record binds these bytes.

Untrusted: partial assembly (D-12 #5), by t1014-z; merged in 394b16430d02 under attestations/000522.json, whose step 2 took this file as a partial. A partial records an attempt, not a proof: the gate replayed it with its holes left as sorry. Rendered from targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261014T112100Z-t1014-z-partial.lean.

Untrusted contributor text — an outline the gate extracted from this partial assembly; its holes are sorry steps, and it records an attempt, not a proof.

Outline of 20261014T112100Z-t1014-z-partial.lean, extracted by the gate at f97b6921b55b from the proof’s elaboration: each step is a claim the proof establishes and the goal it leaves. Open a step for what it uses and its Lean lines.

  1. hall have (∃ (K₁ : ℕ), ∀ (n k : ℕ), K₁ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → k % (3 : ℕ) = (0 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p) ∧ ∃ (K₂ : ℕ), ∀ (n k : ℕ), K₂ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → (0 : ℕ) < k % (3 : ℕ) → k % (3 : ℕ) ≤ n % (3 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p

    Leaves ∃ (K₁ : ℕ), ∀ (n k : ℕ), K₁ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p, with hall : (∃ (K₁ : ℕ), ∀ (n k : ℕ), K₁ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → k % (3 : ℕ) = (0 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p) ∧ ∃ (K₂ : ℕ), ∀ (n k : ℕ), K₂ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → (0 : ℕ) < k % (3 : ℕ) → k % (3 : ℕ) ≤ n % (3 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p.

    Uses library Nat.Prime Nat.Prime p means that p is a prime number, that is, a natural number at least 2 whose only divisors are p and 1. , And.intro And.intro : a → b → a ∧ b is the constructor for the And operation. .

    Lean, lines 12–22
      have hall : (∃ K₁ : ℕ, ∀ n k : ℕ, K₁ < k → 2 * k ≤ n → n < k * k → k % 2 = 0 → k % 3 = 0 →
            ∃ p : ℕ, Nat.Prime p ∧ p ≤ k ∧ n % p < k % p) ∧
          (∃ K₂ : ℕ, ∀ n k : ℕ, K₂ < k → 2 * k ≤ n → n < k * k → k % 2 = 0 → 0 < k % 3 →
            k % 3 ≤ n % 3 → ∃ p : ℕ, Nat.Prime p ∧ p ≤ k ∧ n % p < k % p) := by
        refine ⟨?_, ?_⟩
        · have h_k6 : ∃ K₁ : ℕ, ∀ n k : ℕ, K₁ < k → 2 * k ≤ n → n < k * k → k % 2 = 0 →
              k % 3 = 0 → ∃ p : ℕ, Nat.Prime p ∧ p ≤ k ∧ n % p < k % p := by sorry
          exact h_k6
        · have h_k3rest : ∃ K₂ : ℕ, ∀ n k : ℕ, K₂ < k → 2 * k ≤ n → n < k * k → k % 2 = 0 →
              0 < k % 3 → k % 3 ≤ n % 3 → ∃ p : ℕ, Nat.Prime p ∧ p ≤ k ∧ n % p < k % p := by sorry
          exact h_k3rest

    targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261014T112100Z-t1014-z-partial.lean, lines 12–22 at 6ba7fea98468 ↗

    1. hall.s1 case

      Leaves ∃ (K₁ : ℕ), ∀ (n k : ℕ), K₁ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → k % (3 : ℕ) = (0 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p.

      Lean, lines 17–19
          · have h_k6 : ∃ K₁ : ℕ, ∀ n k : ℕ, K₁ < k → 2 * k ≤ n → n < k * k → k % 2 = 0 →
                k % 3 = 0 → ∃ p : ℕ, Nat.Prime p ∧ p ≤ k ∧ n % p < k % p := by sorry
            exact h_k6

      targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261014T112100Z-t1014-z-partial.lean, lines 17–19 at 6ba7fea98468 ↗

      1. hall.s1.h_k6 hole ∃ (K₁ : ℕ), ∀ (n k : ℕ), K₁ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → k % (3 : ℕ) = (0 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p hole

        Leaves ∃ (K₁ : ℕ), ∀ (n k : ℕ), K₁ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → k % (3 : ℕ) = (0 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p, with h_k6 : ∃ (K₁ : ℕ), ∀ (n k : ℕ), K₁ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → k % (3 : ℕ) = (0 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p.

        Uses library Nat.Prime Nat.Prime p means that p is a prime number, that is, a natural number at least 2 whose only divisors are p and 1. .

        Left open as a hole; its statement is erdos-1094--h3--h1--h1--h1 (open).

        Lean, lines 17–18
            · have h_k6 : ∃ K₁ : ℕ, ∀ n k : ℕ, K₁ < k → 2 * k ≤ n → n < k * k → k % 2 = 0 →
                  k % 3 = 0 → ∃ p : ℕ, Nat.Prime p ∧ p ≤ k ∧ n % p < k % p := by sorry

        targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261014T112100Z-t1014-z-partial.lean, lines 17–18 at 6ba7fea98468 ↗

    2. hall.s2 case

      Leaves ∃ (K₂ : ℕ), ∀ (n k : ℕ), K₂ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → (0 : ℕ) < k % (3 : ℕ) → k % (3 : ℕ) ≤ n % (3 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p.

      Lean, lines 20–22
          · have h_k3rest : ∃ K₂ : ℕ, ∀ n k : ℕ, K₂ < k → 2 * k ≤ n → n < k * k → k % 2 = 0 →
                0 < k % 3 → k % 3 ≤ n % 3 → ∃ p : ℕ, Nat.Prime p ∧ p ≤ k ∧ n % p < k % p := by sorry
            exact h_k3rest

      targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261014T112100Z-t1014-z-partial.lean, lines 20–22 at 6ba7fea98468 ↗

      1. hall.s2.h_k3rest hole ∃ (K₂ : ℕ), ∀ (n k : ℕ), K₂ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → (0 : ℕ) < k % (3 : ℕ) → k % (3 : ℕ) ≤ n % (3 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p hole

        Leaves ∃ (K₂ : ℕ), ∀ (n k : ℕ), K₂ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → (0 : ℕ) < k % (3 : ℕ) → k % (3 : ℕ) ≤ n % (3 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p, with h_k3rest : ∃ (K₂ : ℕ), ∀ (n k : ℕ), K₂ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → (0 : ℕ) < k % (3 : ℕ) → k % (3 : ℕ) ≤ n % (3 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p.

        Uses library Nat.Prime Nat.Prime p means that p is a prime number, that is, a natural number at least 2 whose only divisors are p and 1. .

        Left open as a hole; its statement is erdos-1094--h3--h1--h1--h2 (open).

        Lean, lines 20–21
            · have h_k3rest : ∃ K₂ : ℕ, ∀ n k : ℕ, K₂ < k → 2 * k ≤ n → n < k * k → k % 2 = 0 →
                  0 < k % 3 → k % 3 ≤ n % 3 → ∃ p : ℕ, Nat.Prime p ∧ p ≤ k ∧ n % p < k % p := by sorry

        targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261014T112100Z-t1014-z-partial.lean, lines 20–21 at 6ba7fea98468 ↗

  2. s2 obtain ∃ (K₁ : ℕ), ∀ (n k : ℕ), K₁ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → k % (3 : ℕ) = (0 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p

    Leaves ∃ (K₁ : ℕ), ∀ (n k : ℕ), K₁ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p, with K₁ : ℕ, h₁ : ∀ (n k : ℕ), K₁ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → k % (3 : ℕ) = (0 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p.

    Lean, line 23
      obtain ⟨K₁, h₁⟩ := hall.1

    targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261014T112100Z-t1014-z-partial.lean, line 23 at 6ba7fea98468 ↗

  3. s3 obtain ∃ (K₂ : ℕ), ∀ (n k : ℕ), K₂ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → (0 : ℕ) < k % (3 : ℕ) → k % (3 : ℕ) ≤ n % (3 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p

    Leaves ∃ (K₁ : ℕ), ∀ (n k : ℕ), K₁ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p, with K₂ : ℕ, h₂ : ∀ (n k : ℕ), K₂ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → (0 : ℕ) < k % (3 : ℕ) → k % (3 : ℕ) ≤ n % (3 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p.

    Lean, line 24
      obtain ⟨K₂, h₂⟩ := hall.2

    targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261014T112100Z-t1014-z-partial.lean, line 24 at 6ba7fea98468 ↗

  4. hK1 have K₁ < k

    Leaves ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p, with hK₁ : K₁ < k.

    Uses library lt_of_le_of_lt, le_max_left.

    Lean, line 26
      have hK₁ : K₁ < k := lt_of_le_of_lt (le_max_left _ _) hk

    targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261014T112100Z-t1014-z-partial.lean, line 26 at 6ba7fea98468 ↗

  5. hK2 have K₂ < k

    Leaves ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p, with hK₂ : K₂ < k.

    Uses library lt_of_le_of_lt, le_trans The relation ≤ on a preorder is transitive. , le_max_left, le_max_right.

    Lean, line 27
      have hK₂ : K₂ < k := lt_of_le_of_lt (le_trans (le_max_left _ _) (le_max_right _ _)) hk

    targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261014T112100Z-t1014-z-partial.lean, line 27 at 6ba7fea98468 ↗

  6. hk3 have (3 : ℕ) ≤ k

    Leaves ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p, with hk3 : (3 : ℕ) ≤ k.

    Uses library lt_of_le_of_lt, le_trans The relation ≤ on a preorder is transitive. , le_max_right.

    Lean, line 28
      have hk3 : 3 ≤ k := lt_of_le_of_lt (le_trans (le_max_right K₂ 2) (le_max_right _ _)) hk

    targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261014T112100Z-t1014-z-partial.lean, line 28 at 6ba7fea98468 ↗

  7. s7 case

    Leaves ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p, with h0 : k % (3 : ℕ) = (0 : ℕ).

    Lean, line 30
      · exact h₁ n k hK₁ h2k hnk hk2 h0

    targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261014T112100Z-t1014-z-partial.lean, line 30 at 6ba7fea98468 ↗

  8. s8 case

    Leaves ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p, with h0 : ¬k % (3 : ℕ) = (0 : ℕ).

    Lean, lines 31–33
      · by_cases hlt : n % 3 < k % 3
        · exact ⟨3, Nat.prime_three, hk3, hlt⟩
        · exact h₂ n k hK₂ h2k hnk hk2 (Nat.pos_of_ne_zero h0) (Nat.le_of_not_lt hlt)

    targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261014T112100Z-t1014-z-partial.lean, lines 31–33 at 6ba7fea98468 ↗

    1. s8.s1 case

      Leaves ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p, with hlt : n % (3 : ℕ) < k % (3 : ℕ).

      Uses library Exists.intro Existential introduction. , Nat.prime_three.

      Lean, line 32
          · exact ⟨3, Nat.prime_three, hk3, hlt⟩

      targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261014T112100Z-t1014-z-partial.lean, line 32 at 6ba7fea98468 ↗

    2. s8.s2 case

      Leaves ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p, with hlt : ¬n % (3 : ℕ) < k % (3 : ℕ).

      Uses library Nat.pos_of_ne_zero, Nat.le_of_not_lt.

      Lean, line 33
          · exact h₂ n k hK₂ h2k hnk hk2 (Nat.pos_of_ne_zero h0) (Nat.le_of_not_lt hlt)

      targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261014T112100Z-t1014-z-partial.lean, line 33 at 6ba7fea98468 ↗

import Mathlib
import Nodes.«erdos-1094--h3--h1--h1».Context

open scoped Nat

/-! Hole `h_keven` of a merged partial proof, as a node (D-12 #5, D-29).
Statement generated by the gate from the assembly; immutable (D-3). -/

theorem erdos_1094__h3__h1__h1 : ∃ (K₁ : ℕ),
  ∀ (n k : ℕ),
    K₁ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p := by
  have hall : (∃ K₁ : ℕ, ∀ n k : ℕ, K₁ < k → 2 * k ≤ n → n < k * k → k % 2 = 0 → k % 3 = 0 →
        ∃ p : ℕ, Nat.Prime p ∧ p ≤ k ∧ n % p < k % p) ∧
      (∃ K₂ : ℕ, ∀ n k : ℕ, K₂ < k → 2 * k ≤ n → n < k * k → k % 2 = 0 → 0 < k % 3 →
        k % 3 ≤ n % 3 → ∃ p : ℕ, Nat.Prime p ∧ p ≤ k ∧ n % p < k % p) := by
    refine ⟨?_, ?_⟩
    · have h_k6 : ∃ K₁ : ℕ, ∀ n k : ℕ, K₁ < k → 2 * k ≤ n → n < k * k → k % 2 = 0 →
          k % 3 = 0 → ∃ p : ℕ, Nat.Prime p ∧ p ≤ k ∧ n % p < k % p := by sorry
      exact h_k6
    · have h_k3rest : ∃ K₂ : ℕ, ∀ n k : ℕ, K₂ < k → 2 * k ≤ n → n < k * k → k % 2 = 0 →
          0 < k % 3 → k % 3 ≤ n % 3 → ∃ p : ℕ, Nat.Prime p ∧ p ≤ k ∧ n % p < k % p := by sorry
      exact h_k3rest
  obtain ⟨K₁, h₁⟩ := hall.1
  obtain ⟨K₂, h₂⟩ := hall.2
  refine ⟨max K₁ (max K₂ 2), fun n k hk h2k hnk hk2 => ?_⟩
  have hK₁ : K₁ < k := lt_of_le_of_lt (le_max_left _ _) hk
  have hK₂ : K₂ < k := lt_of_le_of_lt (le_trans (le_max_left _ _) (le_max_right _ _)) hk
  have hk3 : 3 ≤ k := lt_of_le_of_lt (le_trans (le_max_right K₂ 2) (le_max_right _ _)) hk
  by_cases h0 : k % 3 = 0
  · exact h₁ n k hK₁ h2k hnk hk2 h0
  · by_cases hlt : n % 3 < k % 3
    · exact ⟨3, Nat.prime_three, hk3, hlt⟩
    · exact h₂ n k hK₂ h2k hnk hk2 (Nat.pos_of_ne_zero h0) (Nat.le_of_not_lt hlt)

Untrusted contributor text — a partial assembly: it records an attempt, not a proof; its attestation names the file, and no hash in the record binds these bytes.

Untrusted: partial assembly (D-12 #5), by t1015c-a16; merged in 48e42508f421 under attestations/000546.json, whose step 2 took this file as a partial. A partial records an attempt, not a proof: the gate replayed it with its holes left as sorry. Rendered from targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261015T145000Z-t1015c-a16-partial.lean.

Untrusted contributor text — an outline the gate extracted from this partial assembly; its holes are sorry steps, and it records an attempt, not a proof.

Outline of 20261015T145000Z-t1015c-a16-partial.lean, extracted by the gate at fa0a13ba270d from the proof’s elaboration: each step is a claim the proof establishes and the goal it leaves. Open a step for what it uses and its Lean lines.

  1. h_smooth hole ∃ (K : ℕ), ∀ (n k : ℕ), K < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → (∀ (q : ℕ), Nat.Prime q → q ≤ k → q ∣ n → q ∣ k) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p hole

    Leaves ∃ (K₁ : ℕ), ∀ (n k : ℕ), K₁ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p, with h_smooth : ∃ (K : ℕ), ∀ (n k : ℕ), K < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → (∀ (q : ℕ), Nat.Prime q → q ≤ k → q ∣ n → q ∣ k) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p.

    Uses library Nat.Prime Nat.Prime p means that p is a prime number, that is, a natural number at least 2 whose only divisors are p and 1. .

    Left open as a hole; its statement is erdos-1094--h3--h1--h1--h3 (open).

    Lean, lines 12–14
      have h_smooth : ∃ K : ℕ, ∀ n k : ℕ, K < k → 2 * k ≤ n → n < k * k → k % 2 = 0 →
          (∀ q : ℕ, Nat.Prime q → q ≤ k → q ∣ n → q ∣ k) →
          ∃ p : ℕ, Nat.Prime p ∧ p ≤ k ∧ n % p < k % p := by sorry

    targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261015T145000Z-t1015c-a16-partial.lean, lines 12–14 at 6ba7fea98468 ↗

  2. s2 obtain ∃ (K : ℕ), ∀ (n k : ℕ), K < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → (∀ (q : ℕ), Nat.Prime q → q ≤ k → q ∣ n → q ∣ k) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p

    Leaves ∃ (K₁ : ℕ), ∀ (n k : ℕ), K₁ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p, with K : ℕ, hK : ∀ (n k : ℕ), K < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → (∀ (q : ℕ), Nat.Prime q → q ≤ k → q ∣ n → q ∣ k) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p.

    Lean, line 15
      obtain ⟨K, hK⟩ := h_smooth

    targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261015T145000Z-t1015c-a16-partial.lean, line 15 at 6ba7fea98468 ↗

  3. s3 case

    Leaves ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p, with hq : ∃ (q : ℕ), Nat.Prime q ∧ q ≤ k ∧ q ∣ n ∧ ¬q ∣ k.

    Uses library Exists.intro Existential introduction. , Nat.mod_eq_zero_of_dvd, Nat.pos_of_ne_zero, Nat.dvd_of_mod_eq_zero.

    Lean, lines 18–21
      · obtain ⟨q, hqp, hqk, hqn, hqnk⟩ := hq
        refine ⟨q, hqp, hqk, ?_⟩
        rw [Nat.mod_eq_zero_of_dvd hqn]
        exact Nat.pos_of_ne_zero (fun h => hqnk (Nat.dvd_of_mod_eq_zero h))

    targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261015T145000Z-t1015c-a16-partial.lean, lines 18–21 at 6ba7fea98468 ↗

    1. s3.s1 obtain ∃ (q : ℕ), Nat.Prime q ∧ q ≤ k ∧ q ∣ n ∧ ¬q ∣ k

      Leaves ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p, with q : ℕ, hqp : Nat.Prime q, hqk : q ≤ k, hqn : q ∣ n, hqnk : ¬q ∣ k.

      Lean, line 18
        · obtain ⟨q, hqp, hqk, hqn, hqnk⟩ := hq

      targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261015T145000Z-t1015c-a16-partial.lean, line 18 at 6ba7fea98468 ↗

  4. s4 case

    Leaves ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p, with hq : ¬∃ (q : ℕ), Nat.Prime q ∧ q ≤ k ∧ q ∣ n ∧ ¬q ∣ k.

    Lean, lines 22–23
      · push_neg at hq
        exact hK n k hk h2k hnk hk2 (fun q hqp hqk hqn => hq q hqp hqk hqn)

    targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/attempts/20261015T145000Z-t1015c-a16-partial.lean, lines 22–23 at 6ba7fea98468 ↗

import Mathlib
import Nodes.«erdos-1094--h3--h1--h1».Context

open scoped Nat

/-! Hole `h_keven` of a merged partial proof, as a node (D-12 #5, D-29).
Statement generated by the gate from the assembly; immutable (D-3). -/

theorem erdos_1094__h3__h1__h1 : ∃ (K₁ : ℕ),
  ∀ (n k : ℕ),
    K₁ < k → (2 : ℕ) * k ≤ n → n < k * k → k % (2 : ℕ) = (0 : ℕ) → ∃ (p : ℕ), Nat.Prime p ∧ p ≤ k ∧ n % p < k % p := by
  have h_smooth : ∃ K : ℕ, ∀ n k : ℕ, K < k → 2 * k ≤ n → n < k * k → k % 2 = 0 →
      (∀ q : ℕ, Nat.Prime q → q ≤ k → q ∣ n → q ∣ k) →
      ∃ p : ℕ, Nat.Prime p ∧ p ≤ k ∧ n % p < k % p := by sorry
  obtain ⟨K, hK⟩ := h_smooth
  refine ⟨K, fun n k hk h2k hnk hk2 => ?_⟩
  by_cases hq : ∃ q : ℕ, Nat.Prime q ∧ q ≤ k ∧ q ∣ n ∧ ¬ q ∣ k
  · obtain ⟨q, hqp, hqk, hqn, hqnk⟩ := hq
    refine ⟨q, hqp, hqk, ?_⟩
    rw [Nat.mod_eq_zero_of_dvd hqn]
    exact Nat.pos_of_ne_zero (fun h => hqnk (Nat.dvd_of_mod_eq_zero h))
  · push_neg at hq
    exact hK n k hk h2k hnk hk2 (fun q hqp hqk hqn => hq q hqp hqk hqn)
Annexes (1), in full

Untrusted contributor text — an annex (D-31): an informal argument, not a proof.

Untrusted: annex (D-31), by thisisanameforsure, drafted with Claude Opus 5.5 (claude-opus-5-5), read by thisisanameforsure before submission, 2026-10-14T07:34:47Z, licence CC-BY-4.0. Rendered from targets/erdos-1094/nodes/erdos-1094--h3--h1--h1/annex/437e731e01aed76724fa346f45d73786e36adfef4295b307bf36de7ca03afed1.md.

Numerical check (2026-10-12, finite range, not a proof): smallest working $K$ in range $K_1=58$; pairs found: 208 failures.

  • Range searched: every even $k\le 1000$, every $n$ with $2k\le n<k^2$ (complete in that range).
  • Pairs $(n,k)$ found that force $K\ge k$: 208 failures, the last $(773,58)$ and $(1579,58)$.
  • Smallest $K$ that works in this range: $K_1=58$.

The method, the cross-checks and the code are in the numerical annex on erdos-1094 (the root), dated 2026-10-12.

How to read this page

No explainer yet. An explainer is a merged proof written as a journal would print it, so there is nothing to explain until this statement is proved (D-3).

How to read a statement’s page →