diff --git a/.github/workflows/erdos625-full-proof-audit.yml b/.github/workflows/erdos625-full-proof-audit.yml new file mode 100644 index 00000000..49aaf2cb --- /dev/null +++ b/.github/workflows/erdos625-full-proof-audit.yml @@ -0,0 +1,111 @@ +name: Erdős 625 full proof audit + +on: + pull_request: + paths: + - "625/audits/FULL_THEOREM_LEMMA_AUDIT_2026-07-25.md" + - "625/audits/POST_INTEGRATION_STATUS_2026-07-25.md" + - "625/proofs/SECTION8_GLOBAL_DECORATION_BRIDGE.md" + - "625/proofs/TRANSFERABLE_RESULTS_AND_COROLLARIES_2026-07-25.md" + - "625/experiments/full_proof_audit_regression.py" + - "625/formalization/Erdos625/Section8AllHighDeficitCellWeight.lean" + - "625/formalization/Erdos625/Section8AllHighDeficitProductBound.lean" + - "625/formalization/Erdos625/Section9QOnlySecondMomentFrontier.lean" + - ".github/workflows/erdos625-full-proof-audit.yml" + workflow_dispatch: + +concurrency: + group: erdos625-full-audit-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + audit-regression: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 + - name: Compile audit checker + run: python -m py_compile 625/experiments/full_proof_audit_regression.py + - name: Run exact audit checks + run: python 625/experiments/full_proof_audit_regression.py + - name: Run audit checks with optimization enabled + run: python -O 625/experiments/full_proof_audit_regression.py + + focused-section8-repair: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 + - name: Reject placeholders and project axioms in repaired modules + shell: bash + run: | + if grep -nE \ + '(^|[[:space:]])(sorry|admit|sorryAx)([[:space:][:punct:]]|$)|^[[:space:]]*(axiom|constant|unsafe)[[:space:]]' \ + 625/formalization/Erdos625/Section8AllHighDeficitCellWeight.lean \ + 625/formalization/Erdos625/Section8AllHighDeficitProductBound.lean; then + exit 1 + fi + - uses: leanprover/lean-action@38fbc41a8c28c4cbaec22d7f7de508ec2e7c0dd9 # v1 + with: + lake-package-directory: 625/formalization + auto-config: false + build: false + use-mathlib-cache: true + use-github-cache: false + nanoda: false + - name: Build the Section 8 simplification dependency closure warning-fatally + working-directory: 625/formalization + shell: bash + run: | + set +e + lake build Erdos625.Section8SimplificationCore --wfail \ + > /tmp/erdos625-full-audit-section8.log 2>&1 + status=$? + tail -n 500 /tmp/erdos625-full-audit-section8.log + exit $status + - name: Upload focused Section 8 compiler log + if: always() + uses: actions/upload-artifact@v4 + with: + name: erdos625-full-audit-section8-log + path: /tmp/erdos625-full-audit-section8.log + if-no-files-found: ignore + + focused-section9-frontier: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 + - name: Reject placeholders and project axioms in the frontier module + shell: bash + run: | + if grep -nE \ + '(^|[[:space:]])(sorry|admit|sorryAx)([[:space:][:punct:]]|$)|^[[:space:]]*(axiom|constant|unsafe)[[:space:]]' \ + 625/formalization/Erdos625/Section9QOnlySecondMomentFrontier.lean; then + exit 1 + fi + - uses: leanprover/lean-action@38fbc41a8c28c4cbaec22d7f7de508ec2e7c0dd9 # v1 + with: + lake-package-directory: 625/formalization + auto-config: false + build: false + use-mathlib-cache: true + use-github-cache: false + nanoda: false + - name: Build the exact q-only second-moment frontier warning-fatally + working-directory: 625/formalization + shell: bash + run: | + set +e + lake build Erdos625.Section9QOnlySecondMomentFrontier --wfail \ + > /tmp/erdos625-full-audit-section9.log 2>&1 + status=$? + tail -n 500 /tmp/erdos625-full-audit-section9.log + exit $status + - name: Upload focused Section 9 compiler log + if: always() + uses: actions/upload-artifact@v4 + with: + name: erdos625-full-audit-section9-log + path: /tmp/erdos625-full-audit-section9.log + if-no-files-found: ignore diff --git a/.github/workflows/erdos625-matching-restriction-envelope.yml b/.github/workflows/erdos625-matching-restriction-envelope.yml new file mode 100644 index 00000000..3c8b30a7 --- /dev/null +++ b/.github/workflows/erdos625-matching-restriction-envelope.yml @@ -0,0 +1,59 @@ +name: Erdős 625 matching-restriction envelope + +on: + pull_request: + paths: + - "625/formalization/Erdos625/Section9MatchingRestrictionEnvelope.lean" + - "625/formalization/Erdos625/Section9ProfileAttachmentMatchingEnvelope.lean" + - "625/formalization/Erdos625/Section9ProfileAttachmentMatchingLogScale.lean" + - "625/formalization/MATCHING_RESTRICTION_ENVELOPE_AUDIT.md" + - ".github/workflows/erdos625-matching-restriction-envelope.yml" + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + focused-lean-check: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 + - name: Reject placeholders and project axioms in the new modules + shell: bash + run: | + if grep -nE \ + '(^|[[:space:]])(sorry|admit|sorryAx)([[:space:][:punct:]]|$)|^[[:space:]]*(axiom|constant|unsafe)[[:space:]]' \ + 625/formalization/Erdos625/Section9MatchingRestrictionEnvelope.lean \ + 625/formalization/Erdos625/Section9ProfileAttachmentMatchingEnvelope.lean \ + 625/formalization/Erdos625/Section9ProfileAttachmentMatchingLogScale.lean; then + exit 1 + fi + - uses: leanprover/lean-action@38fbc41a8c28c4cbaec22d7f7de508ec2e7c0dd9 # v1 + with: + lake-package-directory: 625/formalization + auto-config: false + build: false + use-mathlib-cache: true + use-github-cache: false + nanoda: false + - name: Build the log-square endpoint and dependency closure warning-fatally + working-directory: 625/formalization + shell: bash + run: | + set +e + lake build Erdos625.Section9ProfileAttachmentMatchingLogScale --wfail \ + > /tmp/section9-envelope-lean.log 2>&1 + status=$? + tail -n 300 /tmp/section9-envelope-lean.log + exit $status + - name: Upload focused compiler log + if: always() + uses: actions/upload-artifact@v4 + with: + name: section9-matching-envelope-lean-log + path: /tmp/section9-envelope-lean.log + if-no-files-found: ignore diff --git a/.github/workflows/erdos625-matching-restriction-product.yml b/.github/workflows/erdos625-matching-restriction-product.yml new file mode 100644 index 00000000..2a3d3c74 --- /dev/null +++ b/.github/workflows/erdos625-matching-restriction-product.yml @@ -0,0 +1,57 @@ +name: Erdős 625 matching-restriction product + +on: + pull_request: + paths: + - "625/formalization/Erdos625/FiniteRestrictionProduct.lean" + - "625/formalization/Erdos625/Section9MatchingRestrictionProduct.lean" + - "625/formalization/MATCHING_RESTRICTION_PRODUCT_AUDIT.md" + - ".github/workflows/erdos625-matching-restriction-product.yml" + workflow_dispatch: + +concurrency: + group: erdos625-matching-restriction-product-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + focused-lean-check: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 + - name: Reject placeholders and project axioms in the finite modules + shell: bash + run: | + if grep -nE \ + '(^|[[:space:]])(sorry|admit|sorryAx)([[:space:][:punct:]]|$)|^[[:space:]]*(axiom|constant|unsafe)[[:space:]]' \ + 625/formalization/Erdos625/FiniteRestrictionProduct.lean \ + 625/formalization/Erdos625/Section9MatchingRestrictionProduct.lean; then + exit 1 + fi + - uses: leanprover/lean-action@38fbc41a8c28c4cbaec22d7f7de508ec2e7c0dd9 # v1 + with: + lake-package-directory: 625/formalization + auto-config: false + build: false + use-mathlib-cache: true + use-github-cache: false + nanoda: false + - name: Build the matching-restriction product warning-fatally + working-directory: 625/formalization + shell: bash + run: | + set +e + lake build Erdos625.Section9MatchingRestrictionProduct --wfail \ + > /tmp/section9-matching-restriction-product.log 2>&1 + status=$? + tail -n 500 /tmp/section9-matching-restriction-product.log + exit $status + - name: Upload focused compiler log + if: always() + uses: actions/upload-artifact@v4 + with: + name: erdos625-matching-restriction-product-log + path: /tmp/section9-matching-restriction-product.log + if-no-files-found: ignore diff --git a/.github/workflows/erdos625-q-only-attachment-envelope.yml b/.github/workflows/erdos625-q-only-attachment-envelope.yml new file mode 100644 index 00000000..967a991a --- /dev/null +++ b/.github/workflows/erdos625-q-only-attachment-envelope.yml @@ -0,0 +1,61 @@ +name: Erdős 625 q-only attachment envelope + +on: + pull_request: + paths: + - "625/formalization/Erdos625/Section9MatchingRestrictionQOnly.lean" + - "625/formalization/Erdos625/Section9ProfileAttachmentQOnly.lean" + - "625/formalization/Erdos625/Section9ProfileAttachmentIntrinsicSplit.lean" + - "625/formalization/Erdos625/Section9QOnlyTwoRegimeAssembly.lean" + - "625/formalization/Q_ONLY_ATTACHMENT_ENVELOPE_AUDIT.md" + - ".github/workflows/erdos625-q-only-attachment-envelope.yml" + workflow_dispatch: + +concurrency: + group: erdos625-q-only-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + focused-lean-check: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 + - name: Reject placeholders and project axioms + shell: bash + run: | + if grep -nE \ + '(^|[[:space:]])(sorry|admit|sorryAx)([[:space:][:punct:]]|$)|^[[:space:]]*(axiom|constant|unsafe)[[:space:]]' \ + 625/formalization/Erdos625/Section9MatchingRestrictionQOnly.lean \ + 625/formalization/Erdos625/Section9ProfileAttachmentQOnly.lean \ + 625/formalization/Erdos625/Section9ProfileAttachmentIntrinsicSplit.lean \ + 625/formalization/Erdos625/Section9QOnlyTwoRegimeAssembly.lean; then + exit 1 + fi + - uses: leanprover/lean-action@38fbc41a8c28c4cbaec22d7f7de508ec2e7c0dd9 # v1 + with: + lake-package-directory: 625/formalization + auto-config: false + build: false + use-mathlib-cache: true + use-github-cache: false + nanoda: false + - name: Build q-only two-regime assembly warning-fatally + working-directory: 625/formalization + shell: bash + run: | + set +e + lake build Erdos625.Section9QOnlyTwoRegimeAssembly --wfail \ + > /tmp/q-only-envelope-lean.log 2>&1 + status=$? + tail -n 380 /tmp/q-only-envelope-lean.log + exit $status + - name: Upload focused compiler log + if: always() + uses: actions/upload-artifact@v4 + with: + name: section9-q-only-envelope-lean-log + path: /tmp/q-only-envelope-lean.log + if-no-files-found: ignore diff --git a/625/audits/FULL_THEOREM_LEMMA_AUDIT_2026-07-25.md b/625/audits/FULL_THEOREM_LEMMA_AUDIT_2026-07-25.md new file mode 100644 index 00000000..b6a7a419 --- /dev/null +++ b/625/audits/FULL_THEOREM_LEMMA_AUDIT_2026-07-25.md @@ -0,0 +1,543 @@ +# Erdős Problem 625: full theorem-by-theorem and lemma-by-lemma audit + +**Audit date:** 25 July 2026 +**Canonical text audited:** `625/arxiv/main.tex` on `main`, together with public PRs #27 and #30--#39 +**Status of this document:** adversarial mathematical review and integration plan; not external peer review and not a declaration that the theorem is proved + +## 1. Executive verdict + +The candidate manuscript has a coherent global strategy and a large sound core. I found no contradiction in the location calculation (Sections 2--5), the exact signed overlap identities (Section 6), the partial-diagonal estimate (Section 7), or the rare-seed amplification (Section 10). The final event intersection in Section 11 is also correct once its inputs are available. + +The proof should nevertheless **not yet be described as closed**. The load-bearing unresolved boundary is concentrated in the following two bridges: + +1. **Section 8 physical assembly.** The endpoint transportation inequality and the one-cell high-deficit estimates must be transported through the exact labelled/unlabelled quotient, the dependent family of physical endpoint cells, and the global stub-matching normalization. The present public branches contain most finite ingredients, but not one theorem that identifies their product with the complete canonical high-skeleton sum. +2. **Section 9 asymptotic assembly.** The simplified matching-restriction/q-only attachment theorem must be combined with the attained midpoint profile in both intrinsic residual regimes, including the complementary phase-asymptotic estimate, and then inserted into the exact decomposition defining Proposition 9.2. + +These are narrower obligations than the original near/middle/cycle-walk analysis, but they are substantive. Until they are discharged, Proposition 9.2 and hence Theorem 1 remain conditional. + +### Audit labels + +- **GREEN:** the displayed result and its local proof are logically sound at manuscript level; suggested edits improve exposition or modularity only. +- **GREEN-FINITE:** an exact finite theorem is kernel-checked or exhaustively regression-tested, but its asymptotic/profile specialization is separate. +- **AMBER:** the argument is plausible and no counterexample was found, but a quantified bridge, normalization, or uniformity statement is not fully supplied. +- **BLOCKED:** the stated downstream conclusion depends on an AMBER bridge and must not yet be treated as established. +- **IMPROVEMENT:** a stronger statement follows from the accepted chain once a short explicit bridge is added. + +## 2. Dependency graph + +The proof has the following logical spine. + +```text +Lemma 2.1 + | + +--> Lemma 3.1 --> Section 4 chromatic lower location + | | + | +--> Lemma 5.1 --> midpoint profile and root separation + | | + | +--> Lemmas 6.1--6.2 + | | + | +--> Lemma 7.1 + | | + | +--> Lemmas 8.1--8.3 + | | + | +--> Lemma 9.1 + | | + | +--> Proposition 9.2 + | | + +-----------------------------------------------------------------------------------------+ + | + Lemmas 10.1--10.2 <-----------+ + | + +--> Section 11 --> Theorem 1 +``` + +The exact finite overlap algebra in Section 6 is independent of the asymptotic root calculation. Lemma 10.2 is also an abstract amplification mechanism: it needs only a rare seed for a hereditary induced-subgraph feasibility event and a simultaneous leftover-coloring estimate. + +## 3. Preliminary inequalities and conventions + +### 3.1 Stirling, bounded differences, Paley--Zygmund, binomial tail, Markov + +**Verdict: GREEN.** + +The manuscript uses standard forms with the correct directions. The binomial estimate + +\[ + \Pr\{\operatorname{Bin}(m,1/2)\le m/4\}\le e^{-m/16} +\] + +is weaker than the sharp Chernoff exponent but sufficient. The one-sided bounded-differences inequalities used later follow from the stated two-sided form. + +**Recommended edit.** State once that all asymptotic constants in Sections 2--11 are deterministic and, whenever claimed, uniform over the closed phase interval used for compactness. This prevents later uses of `o(1)` from silently changing quantifier order. + +## 4. Section 2: complete independence-number phase + +### 4.1 Lemma 2.1 (phase expansion) + +**Verdict: GREEN.** + +The expansion of `ln mu_alpha` follows from the exact identity + +\[ + \ln\mu_\alpha=\ln(n)_\alpha-\ln(\alpha!)-(\ln2)\binom\alpha2 +\] + +and a uniform expansion of `ln alpha`. The adjacent-size ratios in (2.8) are exact. They correctly imply + +\[ + \mu_{\alpha+2}=n^{\delta-2+o(1)}=o(1) +\] + +uniformly in the phase and the lower bound on `mu_(alpha-2)` used in the empty-corner estimate. + +The endpoint `delta=1` is used only as a compact limiting endpoint; the actual fractional part lies in `[0,1)`. The formulas extend continuously and uniformly to the closed interval, so this is legitimate. + +**Recommended edits.** + +1. Add a one-sentence statement that the error in (2.2) is uniform on the closed interval `[0,1]`, with `delta=1` interpreted by continuous extension. +2. Isolate the adjacent-ratio corollary as a named statement. It is used repeatedly in Sections 4 and 7 and is easier to audit as a reusable lemma. + +## 5. Section 3: continuous profile roots + +### 5.1 Lemma 3.1 (root phase, derivative, and support comparison) + +**Verdict: GREEN, with one modularity improvement.** + +The affine-plus-curved decomposition (3.11) is exact. Under the fixed mean constraint, its affine terms cancel, leaving the finite entropy variational problem. The Gaussian upper bound on `h_n(i)` gives uniform summability for the unrestricted support. The tilted mean has derivative equal to a positive variance, so the inverse mean map is well-defined and uniformly Lipschitz on the compact target interval. + +The root corridor follows from the sign change of the scalar objective and the uniform derivative + +\[ + \frac{\partial}{\partial k}\{L_S(n,k)+ck\} + =\frac{2}{\ln2}(\ln n)^2+O((\ln n)(\ln\ln n)). +\] + +The statement says “unique zero in the root corridor,” not global uniqueness outside that corridor; the proof establishes exactly that claim. + +**Required explicit bridge for later constant improvements.** Add a named compactness lemma: + +> The limiting value functions `F_(S_+)` and `F_(S_4)`, their optimizing tilts, and `D_4(delta)` are continuous on `delta in [0,1]`. + +The proof is already implicit in the uniform convergence/inverse-map argument, but PR #31 needs the conclusion in this explicit form to convert a pointwise strict entropy inequality into a uniform positive margin. + +**Recommended decomposition.** Split Lemma 3.1 into: + +1. finite/limiting tilt existence and compact convergence; +2. the exact support-comparison identity; +3. root corridor and derivative asymptotics. + +This does not change the mathematics, but substantially lowers the cognitive load of later citations. + +## 6. Section 4: unrestricted chromatic lower location + +### 6.1 Profile enumeration and first-moment lower bound + +**Verdict: GREEN.** + +The exact expectation (4.2) is correct for unordered colorings with a prescribed profile. The number of bounded profiles is at most `(n+1)^(alpha+1)=exp(O((ln n)^2))`, which is negligible compared with the negative displacement `-Theta((ln n)^3)` obtained by moving `ceil(ln n)` parts to the left of the root. + +On the event `alpha(G_n)<=alpha+1`, any coloring with at most `k_chi^-` parts can be refined to exactly `k_chi^-` nonempty independent parts of size at most `alpha+1`; for large `n`, `k_chi^-