Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Theorem 10.3 — Guarded four-family joint upper product assembly

Open
Erdos390.eventual_guarded_four_family_assembly

by doctosil · Sep 6, 2026 · Mathlib c5ea003 (Lean v4.30.0)

asymptoticscombinatoricserdos-problemsnumber-theory

Theorem 10.3 (Guarded Four-Family Joint Upper Product Assembly)

Fix a constant c>C0c > C_0c>C0​, where C0=402963959825970038185C_0 = \frac{4029639598}{25970038185}C0​=259700381854029639598​, and put h=⌈cnlog⁡n⌉h = \left\lceil c \frac{n}{\log n} \right\rceilh=⌈clognn​⌉.

For all sufficiently large n∈Nn \in \mathbb{N}n∈N, there exist an auxiliary positive integer divisor D∈ND \in \mathbb{N}D∈N and four mutually disjoint finite sets of integers

central,fixed,bank,candidates⊆(n,2n+h]\mathrm{central}, \mathrm{fixed}, \mathrm{bank}, \mathrm{candidates} \subseteq (n, 2n + h]central,fixed,bank,candidates⊆(n,2n+h]

such that:

  1. Central anchor containment and product: central⊆(n,2n]\mathrm{central} \subseteq (n, 2n]central⊆(n,2n] and
∏a∈centrala=(2nn)⋅D.\prod_{a \in \mathrm{central}} a = \binom{2n}{n} \cdot D.a∈central∏​a=(n2n​)⋅D.
  1. Residual partition: fixed,bank,candidates⊆(n,2n+h]\mathrm{fixed}, \mathrm{bank}, \mathrm{candidates} \subseteq (n, 2n + h]fixed,bank,candidates⊆(n,2n+h] are mutually disjoint and each is disjoint from central\mathrm{central}central.
  2. Joint tail product exactification:
(∏a∈fixeda)⋅(∏a∈banka)⋅(∏a∈candidatesa)⋅D=∏a∈(2n,2n+h]a.\left( \prod_{a \in \mathrm{fixed}} a \right) \cdot \left( \prod_{a \in \mathrm{bank}} a \right) \cdot \left( \prod_{a \in \mathrm{candidates}} a \right) \cdot D = \prod_{a \in (2n, 2n + h]} a.(a∈fixed∏​a)⋅(a∈bank∏​a)⋅(a∈candidates∏​a)⋅D=a∈(2n,2n+h]∏​a.

This formalizes the complete four-family decomposition from Section 10 of Shouqiao Wang's paper (BankPaperGuardedUpperProductAssembly.lean). The divisor DDD couples the central anchor balance with the exactification of the upper tail product through the union of fixed prime factors, signed bank states, and rounded candidate sets.

Preamble
import Definitions.Def_erdos390_problem
open Filter
Formal statement
namespace Erdos390

open Filter

/-- Theorem 10.3 (Four-family joint upper product assembly):
For every constant `c > C0`, for sufficiently large `n`, there exists an auxiliary divisor `D`
and four mutually disjoint subsets `central`, `fixed`, `bank`, `candidates` of `(n, 2n + ⌈c n / log n⌉]`
such that:
1. `central ⊆ (n, 2n]` with `central.prod id = Nat.choose (2 * n) n * D`
2. `fixed`, `bank`, `candidates ⊆ (n, 2n + ⌈c n / log n⌉]`
3. `fixed`, `bank`, `candidates` are mutually disjoint and disjoint from `central`
4. `fixed.prod id * bank.prod id * candidates.prod id * D = tailProduct`. -/
theorem eventual_guarded_four_family_assembly :
    ∀ c : ℝ, C0 < c →
      ∀ᶠ n : ℕ in atTop,
        ∃ (D : ℕ) (central fixed bank candidates : Finset ℕ),
          central ⊆ factorInterval n (2 * n) ∧
          fixed ⊆ factorInterval n (2 * n + Nat.ceil (c * secondOrderScale n)) ∧
          bank ⊆ factorInterval n (2 * n + Nat.ceil (c * secondOrderScale n)) ∧
          candidates ⊆ factorInterval n (2 * n + Nat.ceil (c * secondOrderScale n)) ∧
          Disjoint central fixed ∧
          Disjoint central bank ∧
          Disjoint central candidates ∧
          Disjoint fixed bank ∧
          Disjoint (fixed ∪ bank) candidates ∧
          central.prod id = Nat.choose (2 * n) n * D ∧
          fixed.prod id * bank.prod id * candidates.prod id * D =
            (factorInterval (2 * n) (2 * n + Nat.ceil (c * secondOrderScale n))).prod id := by sorry

end Erdos390
Source
Shouqiao Wang, A Proposed Solution to Erdős Problem 390, Section 10, BankPaperGuardedUpperProductAssembly.lean (GitHub commit 61325b1)

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactJoin Slack© 2026 Prove2Me