diff --git a/.github/workflows/erdos625-ams-manuscript-clarity.yml b/.github/workflows/erdos625-ams-manuscript-clarity.yml new file mode 100644 index 00000000..1d410092 --- /dev/null +++ b/.github/workflows/erdos625-ams-manuscript-clarity.yml @@ -0,0 +1,64 @@ +name: Erdős 625 AMS manuscript clarity + +on: + pull_request: + paths: + - "625/arxiv/AMS_THEOREM_ENVIRONMENTS_V2.tex" + - "625/arxiv/FRONTMATTER_INTRODUCTION_POSTCLOSURE_V2.tex" + - "625/arxiv/PROOF_ROADMAP_INSERT_V2.tex" + - "625/arxiv/SECTION8_ALL_DEFICIT_AMS_V2.tex" + - "625/arxiv/SECTION9_Q_ONLY_AMS_V2.tex" + - "625/arxiv/AMS_EDITORIAL_DRAFT_V2.tex" + - "625/audits/AMS_WRITING_AND_CLARITY_PASS_2026-08-02.md" + - "625/experiments/check_ams_manuscript_clarity.py" + - ".github/workflows/erdos625-ams-manuscript-clarity.yml" + workflow_dispatch: + +concurrency: + group: erdos625-ams-clarity-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + editorial-checks: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 + - name: Compile editorial checker + run: python -m py_compile 625/experiments/check_ams_manuscript_clarity.py + - name: Run editorial checker + run: python 625/experiments/check_ams_manuscript_clarity.py + - name: Run editorial checker with optimization + run: python -O 625/experiments/check_ams_manuscript_clarity.py + + build-editorial-pdf: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 + - name: Install TeX dependencies + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends \ + latexmk lmodern texlive-latex-extra texlive-bibtex-extra \ + texlive-fonts-recommended + - name: Build the AMS editorial draft + working-directory: 625/arxiv + run: | + latexmk -pdf -interaction=nonstopmode -halt-on-error \ + AMS_EDITORIAL_DRAFT_V2.tex + - name: Reject undefined references in final log + working-directory: 625/arxiv + shell: bash + run: | + if grep -E "LaTeX Warning: (Reference|Citation).*undefined|There were undefined references" \ + AMS_EDITORIAL_DRAFT_V2.log; then + exit 1 + fi + - name: Upload editorial PDF + uses: actions/upload-artifact@v4 + with: + name: erdos625-ams-editorial-draft + path: 625/arxiv/AMS_EDITORIAL_DRAFT_V2.pdf + if-no-files-found: error diff --git a/625/arxiv/AMS_EDITORIAL_DRAFT_V2.tex b/625/arxiv/AMS_EDITORIAL_DRAFT_V2.tex new file mode 100644 index 00000000..5966e21d --- /dev/null +++ b/625/arxiv/AMS_EDITORIAL_DRAFT_V2.tex @@ -0,0 +1,31 @@ +\documentclass[11pt,reqno]{amsart} + +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage{microtype} +\usepackage{mathtools} +\usepackage[authoryear,round]{natbib} +\usepackage[hidelinks]{hyperref} + +\input{AMS_THEOREM_ENVIRONMENTS_V2} + +\title[Chromatic and cochromatic numbers]{A Polynomial-Scale Gap Between the +Chromatic and Cochromatic Numbers of a Random Graph} +\author[Samuil Petkov]{Samuil Petkov} +\address{\'Ecole normale sup\'erieure, Universit\'e PSL, Paris, France} +\email{samuil.petkov@ens.psl.eu} +\subjclass[2020]{Primary 05C80; Secondary 05C15, 60C05} +\keywords{random graph, chromatic number, cochromatic number, second moment method} + +\begin{document} + +\input{FRONTMATTER_INTRODUCTION_POSTCLOSURE_V2} +\input{PROOF_ROADMAP_INSERT_V2} +\input{SECTION8_ALL_DEFICIT_AMS_V2} +\input{SECTION9_Q_ONLY_AMS_V2} + +\renewcommand{\bibsection}{\section*{References}} +\bibliographystyle{plainnat} +\bibliography{references} + +\end{document} diff --git a/625/arxiv/AMS_THEOREM_ENVIRONMENTS_V2.tex b/625/arxiv/AMS_THEOREM_ENVIRONMENTS_V2.tex new file mode 100644 index 00000000..6c12e22e --- /dev/null +++ b/625/arxiv/AMS_THEOREM_ENVIRONMENTS_V2.tex @@ -0,0 +1,15 @@ +% Standard theorem environments for the Version 2 manuscript. +% The canonical manuscript currently uses custom ruled boxes. The final +% AMS-style version should instead use the ordinary amsthm hierarchy below. + +\theoremstyle{plain} +\newtheorem{theorem}{Theorem}[section] +\newtheorem{proposition}[theorem]{Proposition} +\newtheorem{lemma}[theorem]{Lemma} +\newtheorem{corollary}[theorem]{Corollary} + +\theoremstyle{definition} +\newtheorem{definition}[theorem]{Definition} + +\theoremstyle{remark} +\newtheorem{remark}[theorem]{Remark} diff --git a/625/arxiv/FRONTMATTER_INTRODUCTION_POSTCLOSURE_V2.tex b/625/arxiv/FRONTMATTER_INTRODUCTION_POSTCLOSURE_V2.tex new file mode 100644 index 00000000..73c91a71 --- /dev/null +++ b/625/arxiv/FRONTMATTER_INTRODUCTION_POSTCLOSURE_V2.tex @@ -0,0 +1,128 @@ +% Copy-ready front matter for the post-closure Version 2 manuscript. +% Do not include this file in the canonical manuscript until the normalized +% second-moment theorem and the final event assembly have been validated on one +% integrated branch. + +\begin{abstract} +Let $G_n\sim G(n,1/2)$. We prove that the difference between the chromatic +number $\chi(G_n)$ and the cochromatic number $\zeta(G_n)$ is at least a +positive constant times $n/(\log n)^3$ with probability tending to one. The +argument is uniform across the full rounding phase of the independence-number +threshold. Its first-moment component compares ordinary colorings with signed +cocoloring witnesses supported on four consecutive class sizes. For the +second moment, we derive an exact sign-compatibility identity, encode the large +overlap cells by a matching with local deficits, sum the associated physical +matching fibers exactly, and control the residual even-subgraph factor by +injective restriction outside the exposed matching. A bounded-differences +argument then amplifies the resulting positive-probability seed to a +high-probability cocoloring. +\end{abstract} + +\maketitle + +\section{Introduction}\label{sec:introduction-v2} + +All graphs in this paper are finite, simple, and undirected. A +\emph{cocoloring} of a graph $G$ is a partition of $V(G)$ into nonempty classes, +each of which is either an independent set or a clique. The least number of +classes in such a partition is the \emph{cochromatic number} $\zeta(G)$. This +is the standard invariant introduced by Lesniak and Straight +\citep{lesniak-straight-1977}. We write $\chi(G)$ for the chromatic number. + +Let $G_n\sim G(n,1/2)$ be the labeled random graph on $[n]$ in which the +$\binom n2$ possible edges occur independently with probability $1/2$. An +event holds \emph{with high probability} if its probability tends to one as +$n\to\infty$. + +Erd\H{o}s and Gimbel asked whether +\[ + \chi(G_n)-\zeta(G_n)\longrightarrow\infty +\] +with high probability \citep[p.~263]{erdos-gimbel-1993}. The problem was +later restated by Gimbel \citep[Section~7.4]{gimbel-2016} and is cataloged as +Erd\H{o}s Problem~625 \citep{bloom-erdos625}. The main result gives a +full-sequence lower bound of the conjectured polynomial order. + +\begin{theorem}\label{thm:main-v2} +For $G_n\sim G(n,1/2)$, +\[ + \mathbb P\!\left( + \chi(G_n)-\zeta(G_n) + \ge + \frac{(\log 2)^2}{8} + \log\!\left(\frac{1000}{639}\right) + \frac{n}{(\log n)^3} + \right) + \longrightarrow 1. +\] +In particular, $\chi(G_n)-\zeta(G_n)$ tends to infinity with high probability +along the full sequence of integers $n$. +\end{theorem} + +The full-sequence assertion is significant. Near a jump of the +independence-number threshold, changing the relevant class size by one changes +the feasible profile. A result proved only for a dense set of phase values +therefore need not extend to every integer $n$. Our estimates are uniform in +the complete phase parameter, including sequences approaching either endpoint +of a phase interval. + +\subsection{Background} + +The chromatic number of dense random graphs has been studied since the work of +Grimmett and McDiarmid \citep{grimmett-mcdiarmid-1975}. The first-order +asymptotic was established by Bollob\'as \citep{bollobas-1988}; later +refinements include \citet{mcdiarmid-1990}, +\citet{panagiotou-steger-2009}, and \citet{heckel-2018}. The cochromatic +number fits into the theory of generalized chromatic numbers for hereditary +graph properties developed by Scheinerman and by Bollob\'as--Thomason +\citep{scheinerman-1992,bollobas-thomason-1995}. + +For the chromatic--cochromatic difference, Heckel and, independently, Steiner +obtained the first quantitative evidence toward divergence +\citep{heckel-2024-question,steiner-2024}. Heckel subsequently proved a much +larger lower bound on a phase-dependent set containing approximately $95\%$ of +the integers \citep{heckel-2025-difference}. The remaining difficulty is to +control the complete phase uniformly. The present proof uses the signed +first-moment gain and rare-seed amplification from that work, but replaces the +pairwise sign bound by an exact overlap identity and treats every phase with +one four-size profile. + +\subsection{Main ideas} + +The proof has three stages. + +First, we compare two continuous first-moment roots. The ordinary root governs +proper colorings. The second root governs a four-size signed witness in which +each class is marked either independent or complete. The $2^k$ possible marks +create a uniform entropy gain and move the signed root to the left by order +$n/(\log n)^3$. + +Second, we prove that this signed root is populated. For two signed witnesses, +the overlap matrix determines an exact local reward and a binary cycle-space +factor. Cells whose multiplicity exceeds half the phase cap form a matching. +After fixing this block-level matching, each selected cell is described by its +full endpoint multiplicity and a nonnegative deficit. The local physical +matching fibers are summed exactly, and the only nonlocal change is one global +falling-factorial ratio. The remaining even-subgraph contribution is bounded +directly by restricting outside the exposed matching. + +Third, Paley--Zygmund gives a positive-probability signed witness. A +one-Lipschitz induced cocolorable-capacity variable and a simultaneous +leftover-coloring estimate amplify this seed to a high-probability upper bound +for $\zeta(G_n)$. Intersecting that event with the ordinary-coloring lower +bound completes the proof. + +\subsection{Organization of the paper} + +Section~2 resolves the full independence-number phase. Sections~3 and~4 +locate the ordinary first-moment root and derive an unrestricted lower bound +for $\chi(G_n)$. Section~5 constructs the four-size signed profile and proves +the root separation. Section~6 derives the exact signed-overlap identity, and +Section~7 controls partial diagonals. Sections~8 and~9 treat the high-cell +matching and the residual attachment, respectively. Section~10 amplifies the +signed seed, and the final section assembles the two high-probability events. + +Exact finite identities, deterministic inequalities, asymptotic estimates, and +probabilistic conclusions are stated separately throughout. This separation +is important in Sections~8 and~9, where a local product formula and a global +falling-factorial normalization occur in the same calculation. diff --git a/625/arxiv/PROOF_ROADMAP_INSERT_V2.tex b/625/arxiv/PROOF_ROADMAP_INSERT_V2.tex index b1ee02a5..2a26973a 100644 --- a/625/arxiv/PROOF_ROADMAP_INSERT_V2.tex +++ b/625/arxiv/PROOF_ROADMAP_INSERT_V2.tex @@ -1,143 +1,183 @@ -% Reader-facing proof roadmap for the corrected Version 2 manuscript. -% This file is not included by main.tex automatically. Insert only after the -% Section VIII closure theorem has been checked and the theorem statement has -% been updated consistently. +% Reader-facing proof architecture for the post-closure Version 2 manuscript. +% Do not include this file until the Section VIII bare-skeleton estimate and the +% normalized second-moment theorem have been validated on one integrated branch. \section{Proof architecture}\label{sec:proof-architecture} -The proof has three logically separate components. First, we compare the -ordinary-colouring and signed four-size first-moment roots. Second, we prove a -normalised second-moment estimate for the signed profile. Third, we amplify the -resulting positive-probability signed seed to a high-probability cocolouring. -We record the dependency structure before entering the technical estimates. +The proof consists of three logically distinct stages: a comparison of two +first-moment locations, a normalized second-moment estimate for a signed +four-size profile, and a concentration argument that turns a +positive-probability witness into a high-probability cocoloring. This section +records the dependency structure and the exact quantities that connect the +three stages. -\subsection{The two first-moment locations} +\subsection{The two first-moment roots} -Let $r_+(n)$ denote the continuous root of the ordinary profile first moment, -and let $r_4^{\mathrm{co}}(n)$ denote the root of the signed four-size -objective. The four permitted deficits are $2,3,4,5$. If $\delta_n$ is the -phase parameter and +Let $r_+(n)$ be the continuous root of the ordinary profile first moment, and +let $r_4^{\mathrm{co}}(n)$ be the root of the signed objective restricted to +the four deficits $2,3,4,5$. If $\delta_n$ denotes the phase parameter, put \[ A_4(\delta):=\log 2-D_4(\delta), \] -then the root comparison gives +where $D_4(\delta)$ is the entropy loss caused by restricting the deficit +support to these four values. The first-moment calculation gives \[ r_+(n)-r_4^{\mathrm{co}}(n) = \left[ - \frac{(\log2)^2}{4}A_4(\delta_n)+o(1) - \right]\frac{n}{(\log n)^3}. + \frac{(\log 2)^2}{4}A_4(\delta_n)+o(1) + \right] + \frac{n}{(\log n)^3}. \] -We place the signed seed at +We place the signed witness at the midpoint \[ k_{\mathrm{co}} - = + := \left\lceil - \frac{r_4^{\mathrm{co}}(n)+r_+(n)}2 + \frac{r_4^{\mathrm{co}}(n)+r_+(n)}{2} \right\rceil. \] -Thus the deterministic distance from the ordinary root is +Therefore \[ r_+(n)-k_{\mathrm{co}} = \left[ - \frac{(\log2)^2}{8}A_4(\delta_n)+o(1) - \right]\frac{n}{(\log n)^3}. + \frac{(\log 2)^2}{8}A_4(\delta_n)+o(1) + \right] + \frac{n}{(\log n)^3}. \] -The exact entropy certificate used below implies +The entropy certificate in Section~5 yields the uniform bound \[ - A_4(\delta)>\log\!\left(\frac{1000}{639}\right) + A_4(\delta)> + \log\!\left(\frac{1000}{639}\right) + \qquad (0\le \delta\le 1). \] -uniformly in the phase. +Thus the first-moment calculation already supplies the constant in +Theorem~\ref{thm:main-v2}. The remaining task is to prove that the signed +profile is realized with sufficiently large probability. -\subsection{The signed overlap identity} +\subsection{The exact signed-overlap identity} -For two ordered signed profile partitions, write $r=(r_{ab})$ for their overlap -table and let $H_r$ be the bipartite graph of cells with multiplicity at least -two. Summing over the two sign vectors gives the exact identity +Consider two ordered signed profile partitions, and let +$r=(r_{ab})$ be their overlap table. Define $H_r$ to be the simple bipartite +graph whose edges are the cells with $r_{ab}\ge 2$. Summing over the two sign +vectors gives the exact factorization \[ \operatorname{wt}_{\mathrm{sign}}(r) = \left(\prod_{a,b}g(r_{ab})\right)2^{\beta(H_r)}, \] -where $\beta(H_r)$ is the binary cycle rank. We separate the normalised -second moment into partial diagonals, canonical high cells, and the residual -attachment. +where $\beta(H_r)$ is the dimension of the binary cycle space. The normalized +second moment is then decomposed into three parts: partial diagonals, the +canonical high-cell skeleton, and the residual attachment. -The partial-diagonal contribution is handled directly. The positive support -of the canonical high cells is a block matching, because every row and column -margin is at most the phase cap whereas each high cell exceeds one half of that -cap. +Section~7 controls the partial diagonals. For the remaining overlap tables, +every cell above one half of the phase cap is unique in its row and column. +Consequently the positive high-cell support is a block-level matching. -\subsection{High cells as a matching with deficits} +\subsection{High cells, deficits, and physical fibers} -Fix a block matching $P$. For $e\in P$, let $s_e,t_e$ be the endpoint block -sizes, +Fix a block matching $P$. For $e\in P$, let $s_e$ and $t_e$ be the endpoint +block sizes, and define \[ - m_e:=\min\{s_e,t_e\},\qquad - j_e:=m_e-h_e, + m_e:=\min\{s_e,t_e\}, + \qquad + j_e:=m_e-h_e. \] -and put +Here $j_e$ is the actual high multiplicity and $h_e$ is its deficit from full +containment. Put \[ - J:=\sum_{e\in P}j_e,\qquad H:=\sum_{e\in P}h_e. + J:=\sum_{e\in P}j_e, + \qquad + H:=\sum_{e\in P}h_e. \] -After summing the literal partial-stub-matching fibre, the exact aggregate -weight is +After summing the complete finite fiber of local partial stub matchings, the +aggregate bare weight is \begin{equation}\label{eq:v2-aggregate-high-weight} w(P,j) = - \frac{\displaystyle - \prod_{e\in P}(s_e)_{j_e}(t_e)_{j_e}} - {\displaystyle - (n)_J\prod_{e\in P}j_e!} + \frac{ + \displaystyle\prod_{e\in P}(s_e)_{j_e}(t_e)_{j_e} + }{ + \displaystyle (n)_J\prod_{e\in P}j_e! + } \prod_{e\in P}g(j_e). \end{equation} -No full completion is selected objectwise. Equation -\eqref{eq:v2-aggregate-high-weight} is obtained by summing the entire finite -physical fibre. +No full completion is chosen for an individual partial matching. Equation +\eqref{eq:v2-aggregate-high-weight} is an identity for the sum of the entire +physical fiber. -For endpoint sizes $m,m+d$, define +For endpoint sizes $m$ and $m+d$, define \[ R_{m,d}(h) := \frac{\binom mh}{(d+1)(d+2)\cdots(d+h)} - 2^{-hm+h(h+1)/2}. + 2^{-hm+h(h+1)/2}, + \qquad R_{m,d}(0):=1. \] -The only global denominator change is +The local partial-to-full ratio is exactly $R_{m,d}(h)$. The only nonlocal +change is the ambient falling-factorial denominator: \[ \frac{(n)_{J+H}}{(n)_J} - =(n-J)_H\le n^H. + =(n-J)_H + \le n^H. \] -Consequently +It follows that \begin{equation}\label{eq:v2-global-deficit-comparison} \frac{w(P,m-h)}{w_{\mathrm{full}}(P)} \le \prod_{e\in P}n^{h_e}R_{m_e,d_e}(h_e). \end{equation} +The factor $n^H$ is paid once, after the physical fibers have been summed. + +\subsection{Summing all deficits and regrouping by endpoint table} -The canonical high condition implies $2h_em_0^3$, then +\[ + m_0<2^{\lceil U/3\rceil} +\] +and +\[ + \mathcal A(M)\le 2^{Um_0/2}. +\] +\end{proposition} + +\begin{proof} +In the first regime, the residual degree bounds and the definition of the +activities give +\[ + \sum_e q_e\le C_1U^2. +\] +The preceding product estimate yields +$\mathcal A(M)\le\exp(2C_1U^2)$. + +In the second regime, the inequality $2^U>m_0^3$ implies +$m_0<2^{\lceil U/3\rceil}$. We discard the residual restrictions and use the +deterministic bounds +\[ + \sum_e\binom{r_e}{2} + \le \frac{U-1}{2}m_0, + \qquad + \beta(H_{\mathrm{res}}\cup M) + \le \frac{m_0}{2}. +\] +The product of the local and cycle-space factors is therefore at most +$2^{Um_0/2}$. +\end{proof} + +The two estimates are uniform in the canonical high skeleton. For the exact +midpoint profile, they imply the following aggregate form. + +\begin{proposition}[Attained attachment sum] +\label{prop:attained-attachment-sum-v2} +There is a deterministic sequence $\varepsilon_n\to0$ such that +\begin{equation} + \operatorname{AttachmentSum}_n + \le + \operatorname{BareSkeletonSum}_n + \exp\!\left\{ + \varepsilon_n\frac{n}{(\log n)^4} + \right\}. + \label{eq:attained-attachment-sum-v2} +\end{equation} +\end{proposition} + +\begin{proof} +Use the first bound in Proposition~\ref{prop:q-only-attachment-v2} when +$2^U\le m_0^3$. Since $U=O(\log n)$, its logarithm is $O((\log n)^2)$. +In the complementary regime, the inequality +$m_0<2^{\lceil U/3\rceil}$ and the phase relation imply +\[ + Um_0=o\!\left(\frac{n}{(\log n)^4}\right). +\] +Taking the larger of the two deterministic errors gives a sequence +$\varepsilon_n\to0$ that is independent of the skeleton. Factoring this +uniform bound from the exact decomposition +\eqref{eq:exact-attachment-decomposition-v2} proves +\eqref{eq:attained-attachment-sum-v2}. +\end{proof} + +Combining Proposition~\ref{prop:attained-attachment-sum-v2} with +\eqref{eq:bare-skeleton-final-ams-v2} yields +\[ + \log\frac{\mathbb E Z^2}{(\mathbb E Z)^2} + = + o\!\left(\frac{n}{(\log n)^4}\right). +\] +This is the normalized second-moment estimate used in the amplification +argument. diff --git a/625/audits/AMS_WRITING_AND_CLARITY_PASS_2026-08-02.md b/625/audits/AMS_WRITING_AND_CLARITY_PASS_2026-08-02.md new file mode 100644 index 00000000..51638be5 --- /dev/null +++ b/625/audits/AMS_WRITING_AND_CLARITY_PASS_2026-08-02.md @@ -0,0 +1,177 @@ +# Erdős 625: AMS writing and clarity pass + +**Date:** 2 August 2026 +**Branch:** `agent/625-ams-manuscript-clarity` +**Scope:** actual copy-ready TeX prose for the eventual Version 2 manuscript + +## 1. Purpose + +This pass revises the manuscript text itself. It is not another proof audit or +pull-request description. The branch supplies a compilable editorial draft +containing a replacement abstract and introduction, a proof-architecture +section, and shorter reader-facing versions of the high-skeleton and residual +attachment sections. + +The canonical `625/arxiv/main.tex` remains unchanged. The new fragments are +post-closure text and must not be imported until the normalized second-moment +estimate and final theorem have been validated on one integrated branch. + +## 2. AMS-style decisions + +The editorial draft follows the ordinary `amsart` hierarchy: + +```text +Theorem / Proposition / Lemma / Corollary +Definition +Remark +``` + +The final manuscript should use standard theorem environments rather than +colored ruled boxes. Mathematical statements are stated first and proved +second. Definitions precede their first substantive use. Exact identities, +deterministic inequalities, asymptotic estimates, and probabilistic +conclusions are kept in separate paragraphs or propositions. + +The prose uses American mathematical English consistently: + +```text +coloring, cocoloring, normalized, fiber +``` + +The draft also uses `\log` consistently for the natural logarithm, with the +convention stated once in the full manuscript. + +## 3. Abstract and introduction + +The revised abstract is a single paragraph of fewer than 150 words. It states: + +1. the invariant and probabilistic model; +2. the quantitative conclusion; +3. the phase-uniform difficulty; +4. the four mathematical mechanisms used in the proof. + +It removes promotional language such as “exquisitely phase-sensitive” and +replaces it by the quantitative statement that the first-moment root moves by +order `n/(log n)^3`. + +The introduction now has a fixed order: + +1. standard graph-theoretic definitions; +2. the Erdős--Gimbel question; +3. the main theorem; +4. the significance of the full-sequence quantifier; +5. concise historical background; +6. the three main proof ideas; +7. organization of the paper. + +The introduction does not begin the technical proof, and it does not repeat the +same roadmap twice under different headings. + +## 4. Proof architecture + +The rewritten proof architecture separates the argument into: + +1. ordinary and signed first-moment roots; +2. exact signed-overlap identity; +3. high cells as a block matching with deficits; +4. exact physical-fiber summation and one global denominator loss; +5. all-deficit summation and weighted regrouping by endpoint table; +6. q-only residual attachment; +7. amplification and final event intersection. + +The section introduces every symbol before using it. In particular, it +explains the roles of + +```text +P, s_e, t_e, m_e, d_e, j_e, h_e, J, H, L(P), W(L), and q_e. +``` + +The text states explicitly that no individual partial matching is assigned a +canonical full completion. The complete physical fiber is summed first. + +## 5. Section VIII rewrite + +The new Section VIII text is organized around five named finite statements: + +1. aggregate high-skeleton weight; +2. exact local ratio; +3. aggregate deficit comparison; +4. finite optional-choice identity; +5. weighted reference regrouping. + +The principal formula is + +```text +w(P,j) + = product_e (s_e)_{j_e}(t_e)_{j_e} + / ((n)_J product_e j_e!) + * product_e g(j_e). +``` + +The prose distinguishes the local ratio from the global denominator change. +It explicitly states that the factor `n^H` is paid once, after the physical +fibers have been summed. + +The old near/middle split, objectwise completion language, and residual-cycle +bookkeeping do not appear in this replacement. + +## 6. Section IX rewrite + +The new residual section begins with the exact conditional decomposition and +then states a general restriction-product lemma. The proof of the lemma is one +paragraph: injectivity embeds the restricted family into a power set, whose +weighted sum is a product. + +For the even-subgraph application, the text gives the precise reason for +injectivity: an even subset of a matching must be empty. It then explains that +one activity `q_e` controls both the local increment product and the +cycle-space product. + +The section contains no simple-cycle decomposition, walk kernel, mixed-cycle +encoding, or duplicated local/cycle charge. + +## 7. Displayed mathematics + +The editorial fragments use automatically numbered `equation` environments +and labels. They do not use manual `\tag{...}` commands. Displayed equations +are integrated grammatically into the surrounding sentences and carry +punctuation where the sentence continues. + +Long formulas are preceded by a sentence explaining their role. A displayed +formula is not followed by “where” unless the newly introduced notation is +short and local. + +## 8. Citation and attribution style + +Historical claims are attached to primary references. Citations are placed at +the ends of the sentences they support. The proof architecture does not cite +software, audits, or pull requests. Formalization and reproducibility material +belong in a separate final section and must not interrupt the mathematical +argument. + +## 9. Files + +```text +625/arxiv/AMS_THEOREM_ENVIRONMENTS_V2.tex +625/arxiv/FRONTMATTER_INTRODUCTION_POSTCLOSURE_V2.tex +625/arxiv/PROOF_ROADMAP_INSERT_V2.tex +625/arxiv/SECTION8_ALL_DEFICIT_AMS_V2.tex +625/arxiv/SECTION9_Q_ONLY_AMS_V2.tex +625/arxiv/AMS_EDITORIAL_DRAFT_V2.tex +625/experiments/check_ams_manuscript_clarity.py +``` + +## 10. Promotion boundary + +The editorial draft is intentionally separate from `main.tex`. It may be +promoted only after the following mathematical results are green on one +integrated branch: + +1. the complete Section VIII bare-skeleton estimate; +2. the attained q-only attachment estimate; +3. the normalized signed second moment; +4. the seed amplification at the required deterministic scale; +5. the final full-sequence event assembly. + +At promotion time, the bibliography, theorem numbering, cross-references, +notation, and coefficient statement must be synchronized in one commit. diff --git a/625/experiments/check_ams_manuscript_clarity.py b/625/experiments/check_ams_manuscript_clarity.py new file mode 100644 index 00000000..09530e9c --- /dev/null +++ b/625/experiments/check_ams_manuscript_clarity.py @@ -0,0 +1,196 @@ +#!/usr/bin/env python3 +"""Validate the copy-ready AMS-style Erdős 625 manuscript fragments. + +The checks are editorial and structural. They do not validate any theorem. +""" + +from __future__ import annotations + +import re +from collections import Counter +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[2] +ARXIV = ROOT / "625" / "arxiv" + +FILES = { + "driver": ARXIV / "AMS_EDITORIAL_DRAFT_V2.tex", + "theorems": ARXIV / "AMS_THEOREM_ENVIRONMENTS_V2.tex", + "frontmatter": ARXIV / "FRONTMATTER_INTRODUCTION_POSTCLOSURE_V2.tex", + "roadmap": ARXIV / "PROOF_ROADMAP_INSERT_V2.tex", + "section8": ARXIV / "SECTION8_ALL_DEFICIT_AMS_V2.tex", + "section9": ARXIV / "SECTION9_Q_ONLY_AMS_V2.tex", + "canonical": ARXIV / "main.tex", +} + +BANNED_PROSE = { + "exquisitely": "replace promotional language by a quantitative statement", + "delicate point": "state the precise mathematical obstruction instead", + "obviously": "cite the reason", + "clearly": "cite the reason", + "normalised": "use American spelling: normalized", + "colouring": "use American spelling: coloring", + "cocolouring": "use American spelling: cocoloring", +} + +REQUIRED_FRONTMATTER = ( + "All graphs in this paper are finite, simple, and undirected.", + "\\emph{cocoloring} of a graph", + "with high probability", + "The proof has three stages.", + "Exact finite identities, deterministic inequalities, asymptotic estimates", +) + +REQUIRED_SECTION8 = ( + "Aggregate high-skeleton weight", + "Exact local ratio", + "Aggregate deficit comparison", + "Finite optional-choice identity", + "Weighted reference regrouping", + "The order of this argument is important", +) + +REQUIRED_SECTION9 = ( + "Restriction-product bound", + "One activity controls both residual factors", + "Uniform residual attachment bound", + "Attained attachment sum", + "does not require a choice of cycle decomposition", +) + + +def require(condition: bool, message: str) -> None: + if not condition: + raise RuntimeError(message) + + +def read(path: Path) -> str: + require(path.is_file(), f"missing file: {path}") + return path.read_text(encoding="utf-8") + + +def strip_comments(text: str) -> str: + return "\n".join(line.split("%", 1)[0] for line in text.splitlines()) + + +def normalize_source_whitespace(text: str) -> str: + """Collapse TeX source whitespace without altering commands or braces.""" + + return re.sub(r"\s+", " ", strip_comments(text)).strip() + + +def strip_tex_for_words(text: str) -> str: + text = strip_comments(text) + text = re.sub(r"\\\[[\s\S]*?\\\]", " ", text) + text = re.sub(r"\$[^$]*\$", " ", text) + text = re.sub(r"\\[A-Za-z@]+\*?(?:\[[^]]*\])?", " ", text) + text = text.replace("{", " ").replace("}", " ") + text = re.sub(r"[^A-Za-z0-9'-]+", " ", text) + return re.sub(r"\s+", " ", text).strip() + + +def abstract_word_count(frontmatter: str) -> int: + match = re.search( + r"\\begin\{abstract\}(.*?)\\end\{abstract\}", + frontmatter, + flags=re.DOTALL, + ) + require(match is not None, "abstract environment missing") + words = strip_tex_for_words(match.group(1)).split() + return len(words) + + +def check_environment_balance(name: str, text: str) -> None: + begins = Counter(re.findall(r"\\begin\{([^}]+)\}", strip_comments(text))) + ends = Counter(re.findall(r"\\end\{([^}]+)\}", strip_comments(text))) + require(begins == ends, f"{name}: unmatched environments: {begins} != {ends}") + + +def check_labels(texts: dict[str, str]) -> None: + labels: dict[str, list[str]] = {} + for name, text in texts.items(): + for label in re.findall(r"\\label\{([^}]+)\}", strip_comments(text)): + labels.setdefault(label, []).append(name) + duplicates = {label: owners for label, owners in labels.items() if len(owners) > 1} + require(not duplicates, f"duplicate labels in editorial draft: {duplicates}") + + +def check_prose(texts: dict[str, str]) -> None: + joined = "\n".join(strip_comments(text) for text in texts.values()).lower() + for phrase, advice in BANNED_PROSE.items(): + require(phrase not in joined, f"banned phrase {phrase!r}: {advice}") + + +def check_no_manual_tags(texts: dict[str, str]) -> None: + for name, text in texts.items(): + require("\\tag{" not in strip_comments(text), f"{name}: manual equation tag present") + + +def check_required(text: str, markers: tuple[str, ...], label: str) -> None: + normalized_text = normalize_source_whitespace(text) + missing = [ + marker + for marker in markers + if normalize_source_whitespace(marker) not in normalized_text + ] + require(not missing, f"{label}: missing clarity markers {missing}") + + +def main() -> None: + texts = {name: read(path) for name, path in FILES.items()} + draft_texts = {name: text for name, text in texts.items() if name != "canonical"} + + count = abstract_word_count(texts["frontmatter"]) + require(80 <= count <= 150, f"abstract word count {count} is outside 80--150") + + theorem_text = texts["theorems"] + require("\\theoremstyle{plain}" in theorem_text, "plain theorem style missing") + require("\\theoremstyle{definition}" in theorem_text, "definition theorem style missing") + require("\\theoremstyle{remark}" in theorem_text, "remark theorem style missing") + require("resultbox" not in theorem_text, "custom result boxes remain in theorem file") + require("xcolor" not in texts["driver"], "editorial driver should not color theorem statements") + + check_required(texts["frontmatter"], REQUIRED_FRONTMATTER, "front matter") + check_required(texts["section8"], REQUIRED_SECTION8, "Section VIII rewrite") + check_required(texts["section9"], REQUIRED_SECTION9, "Section IX rewrite") + + check_prose(draft_texts) + check_no_manual_tags(draft_texts) + check_labels(draft_texts) + + for name, text in draft_texts.items(): + check_environment_balance(name, text) + require("TODO" not in text and "TBD" not in text, f"{name}: unresolved placeholder") + + canonical = texts["canonical"] + for filename in ( + "FRONTMATTER_INTRODUCTION_POSTCLOSURE_V2", + "PROOF_ROADMAP_INSERT_V2", + "SECTION8_ALL_DEFICIT_AMS_V2", + "SECTION9_Q_ONLY_AMS_V2", + ): + require(filename not in canonical, f"canonical main.tex already imports {filename}") + + driver = texts["driver"] + for filename in ( + "AMS_THEOREM_ENVIRONMENTS_V2", + "FRONTMATTER_INTRODUCTION_POSTCLOSURE_V2", + "PROOF_ROADMAP_INSERT_V2", + "SECTION8_ALL_DEFICIT_AMS_V2", + "SECTION9_Q_ONLY_AMS_V2", + ): + require(f"\\input{{{filename}}}" in driver, f"driver omits {filename}") + + print("ERDOS 625 AMS MANUSCRIPT CLARITY CHECK: PASS") + print(f" abstract words: {count}") + print(f" draft fragments: {len(draft_texts)}") + print(" standard theorem hierarchy: present") + print(" manual equation tags: none") + print(" duplicate labels: none") + print(" canonical main.tex: unchanged and does not import post-closure text") + print(" scope: editorial structure only; no theorem validation") + + +if __name__ == "__main__": + main()