coloring_nested_tire_graphs: add general chromatic-polynomial method for §6 graphs

Adds a 'General method' paragraph to menagerie §6 describing how to
compute P_e(G, k) for any G = C_n + (matching of non-crossing chords):

  P_e(G, k) = Σ_{(c_1,...,c_r)} N(C_n; forbidden(c_1,...,c_r), k)

where the sum is over chord-color assignments and N counts proper
k-edge-colorings of C_n subject to per-edge forbidden colors (= the
chord colors at adjacent chord endpoints).  For each chord-color
choice the inner count is a transfer-matrix product on the polygon,
computed in O(n k^2) time, so the full polynomial is computable in
O(n k^{r+2}) time.

The method specializes to the closed form for θ(1, p, q) (r = 1) and
generalizes to any number of non-crossing chords.  Verified against
Sage's chromatic polynomial of the line graph on:
  - θ(1, 3, 3): 30
  - C_8 + {(0,2), (3,7), (4,6)}: 6
  - C_10 + {(0,2), (3,5), (6,8)}: 18

Note grows by ~1/2 page; still 5 pages total.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-25 21:53:59 -04:00
parent dfca45e913
commit e29836c78a
4 changed files with 75 additions and 33 deletions
@@ -1,4 +1,5 @@
\relax \relax
\@writefile{toc}{\contentsline {paragraph}{Closed form.}{3}{}\protected@file@percent } \@writefile{toc}{\contentsline {paragraph}{Closed form.}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {paragraph}{General method.}{4}{}\protected@file@percent }
\@writefile{toc}{\contentsline {paragraph}{Example calculation (three chords on $C_8$).}{4}{}\protected@file@percent } \@writefile{toc}{\contentsline {paragraph}{Example calculation (three chords on $C_8$).}{4}{}\protected@file@percent }
\gdef \@abspage@last{5} \gdef \@abspage@last{5}
@@ -1,4 +1,4 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdflatex 2022.10.5) 25 MAY 2026 21:30 This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdflatex 2022.10.5) 25 MAY 2026 21:53
entering extended mode entering extended mode
restricted \write18 enabled. restricted \write18 enabled.
%&-line parsing enabled. %&-line parsing enabled.
@@ -296,47 +296,57 @@ File: fig_theta133.png Graphic file (type png)
Package pdftex.def Info: fig_theta133.png used on input line 118. Package pdftex.def Info: fig_theta133.png used on input line 118.
(pdftex.def) Requested size: 272.45877pt x 107.18588pt. (pdftex.def) Requested size: 272.45877pt x 107.18588pt.
[3 <./fig_theta133.png>] [3 <./fig_theta133.png>]
<fig_3chord_example.png, id=38, 514.92375pt x 251.13824pt> Overfull \hbox (16.04408pt too wide) in paragraph at lines 168--176
\OT1/cmr/m/n/10.95 a transfer-matrix prod-uct on the poly-gon: edge $\OML/cmm/m
/it/10.95 e[]$\OT1/cmr/m/n/10.95 's al-lowed colour set is $[\OML/cmm/m/it/10.9
5 k\OT1/cmr/m/n/10.95 ] \OMS/cmsy/m/n/10.95 n f\OML/cmm/m/it/10.95 c[] \OT1/cmr
/m/n/10.95 : \OML/cmm/m/it/10.95 v[][]v[][]j\OMS/cmsy/m/n/10.95 g$\OT1/cmr/m/n/
10.95 ,
[]
<fig_3chord_example.png, id=39, 514.92375pt x 251.13824pt>
File: fig_3chord_example.png Graphic file (type png) File: fig_3chord_example.png Graphic file (type png)
<use fig_3chord_example.png> <use fig_3chord_example.png>
Package pdftex.def Info: fig_3chord_example.png used on input line 161. Package pdftex.def Info: fig_3chord_example.png used on input line 192.
(pdftex.def) Requested size: 328.82707pt x 160.37921pt. (pdftex.def) Requested size: 328.82707pt x 160.37921pt.
<fig_blocktree.png, id=39, 242.55618pt x 147.70181pt> [4 <./fig_3chord_example.png>]
<fig_blocktree.png, id=45, 242.55618pt x 147.70181pt>
File: fig_blocktree.png Graphic file (type png) File: fig_blocktree.png Graphic file (type png)
<use fig_blocktree.png> <use fig_blocktree.png>
Package pdftex.def Info: fig_blocktree.png used on input line 211. Package pdftex.def Info: fig_blocktree.png used on input line 242.
(pdftex.def) Requested size: 258.36668pt x 157.34296pt. (pdftex.def) Requested size: 258.36668pt x 157.34296pt.
[4 <./fig_3chord_example.png>] [5 <./fig_blocktree.png>] (./menagerie.aux) ) [5 <./fig_blocktree.png>] (./menagerie.aux) )
Here is how much of TeX's memory you used: Here is how much of TeX's memory you used:
4641 strings out of 478268 4641 strings out of 478268
75554 string characters out of 5846347 75554 string characters out of 5846347
373157 words of memory out of 5000000 374157 words of memory out of 5000000
22818 multiletter control sequences out of 15000+600000 22818 multiletter control sequences out of 15000+600000
479481 words of font info for 67 fonts, out of 8000000 for 9000 479481 words of font info for 67 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191 1141 hyphenation exceptions out of 8191
55i,8n,63p,245b,198s stack positions out of 10000i,1000n,20000p,200000b,200000s 55i,10n,63p,245b,198s stack positions out of 10000i,1000n,20000p,200000b,200000s
{/u {/usr/local/texlive/2022/texmf-di
sr/local/texlive/2022/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.enc}</us st/fonts/enc/dvips/cm-super/cm-super-ts1.enc}</usr/local/texlive/2022/texmf-dis
r/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb></usr t/fonts/type1/public/amsfonts/cm/cmbx10.pfb></usr/local/texlive/2022/texmf-dist
/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb></usr/ /fonts/type1/public/amsfonts/cm/cmbx12.pfb></usr/local/texlive/2022/texmf-dist/
local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb></usr/l fonts/type1/public/amsfonts/cm/cmex10.pfb></usr/local/texlive/2022/texmf-dist/f
ocal/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/lo onts/type1/public/amsfonts/cm/cmmi10.pfb></usr/local/texlive/2022/texmf-dist/fo
cal/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi12.pfb></usr/loc nts/type1/public/amsfonts/cm/cmmi12.pfb></usr/local/texlive/2022/texmf-dist/fon
al/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi8.pfb></usr/local ts/type1/public/amsfonts/cm/cmmi6.pfb></usr/local/texlive/2022/texmf-dist/fonts
/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/local/t /type1/public/amsfonts/cm/cmmi8.pfb></usr/local/texlive/2022/texmf-dist/fonts/t
exlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr12.pfb></usr/local/tex ype1/public/amsfonts/cm/cmr10.pfb></usr/local/texlive/2022/texmf-dist/fonts/typ
live/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr17.pfb></usr/local/texli e1/public/amsfonts/cm/cmr12.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1
ve/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr6.pfb></usr/local/texlive/ /public/amsfonts/cm/cmr17.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/p
2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb></usr/local/texlive/202 ublic/amsfonts/cm/cmr6.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/publ
2/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/local/texlive/2022 ic/amsfonts/cm/cmr8.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/
/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb></usr/local/texlive/2022/t amsfonts/cm/cmsy10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/a
exmf-dist/fonts/type1/public/amsfonts/cm/cmti10.pfb></usr/local/texlive/2022/te msfonts/cm/cmsy8.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/ams
xmf-dist/fonts/type1/public/amsfonts/cm/cmtt10.pfb></usr/local/texlive/2022/tex fonts/cm/cmti10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsf
mf-dist/fonts/type1/public/cm-super/sfrm1095.pfb> onts/cm/cmtt10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-su
Output written on menagerie.pdf (5 pages, 321355 bytes). per/sfrm1095.pfb>
Output written on menagerie.pdf (5 pages, 335002 bytes).
PDF statistics: PDF statistics:
116 PDF objects out of 1000 (max. 8388607) 121 PDF objects out of 1000 (max. 8388607)
62 compressed objects within 1 object stream 65 compressed objects within 1 object stream
0 named destinations out of 1000 (max. 500000) 0 named destinations out of 1000 (max. 500000)
36 words of extra memory for PDF output out of 10000 (max. 10000000) 36 words of extra memory for PDF output out of 10000 (max. 10000000)
@@ -146,10 +146,41 @@ The formula has been verified empirically against \texttt{Sage}'s
chromatic polynomial routine for all chromatic polynomial routine for all
$p, q \in \{2, 3, 4, 5, 6\}$. $p, q \in \{2, 3, 4, 5, 6\}$.
More generally, a polygon with $r$ chords forming a matching has \paragraph{General method.} For $G = C_n + M$ where $M$ is a
chromatic polynomial computable by the same transfer-matrix idea matching of non-crossing chords, the edge chromatic polynomial can be
along the $r{+}1$ paths between consecutive chord endpoints on the computed by summing over chord-color assignments and applying a
polygon, with a product constraint at each chord endpoint. constrained transfer matrix to the polygon edges:
\[
P_e(G, k) \;=\; \sum_{(c_1, \dots, c_r) \in [k]^r}\, N\bigl(C_n;\,
\text{forbidden}(c_1,\dots,c_r),\,k\bigr),
\]
where $N(C_n; F, k)$ counts proper $k$-edge-colorings of the polygon
$C_n$ subject to: for each cycle edge $e_i$, the colour of $e_i$
avoids every chord-colour $c_j$ such that an endpoint of chord $j$
is incident to $e_i$ (i.e.\ $v_i$ or $v_{i+1}$ is an endpoint of
chord $j$).
Concretely, with chord $j$ at polygon vertices $v_{a_j}, v_{b_j}$
and chord colour $c_j$, the constraints on cycle-edge colours are:
\begin{align*}
\text{at } v_{a_j}\text{: } &\quad c(e_{a_j-1}) \ne c_j,\quad c(e_{a_j}) \ne c_j,\\
\text{at } v_{b_j}\text{: } &\quad c(e_{b_j-1}) \ne c_j,\quad c(e_{b_j}) \ne c_j,
\end{align*}
on top of the usual cycle-adjacency $c(e_i) \ne c(e_{i+1})$. For
each chord-colour assignment, $N(C_n; F, k)$ is a transfer-matrix
product on the polygon: edge $e_i$'s allowed colour set is
$[k] \setminus \{c_j : v_i\text{ or }v_{i+1}\text{ on chord }j\}$,
and the proper-coloring transitions $c(e_i)\to c(e_{i+1})$ go through
a constrained $J - I$ matrix. The full sum is computed in time
polynomial in $n$ and $r$.
For $r = 1$ this reduces to the closed form for $\theta(1,p,q)$
above (sum over the single $c_1$, then transfer-matrix on the two
arcs). For larger $r$ there is no single closed form independent
of the chord placement, but the computation is mechanical. The
$3$-chord example below illustrates how chord-colour assignments
can be eliminated by direct constraint propagation when the cycle
is short enough.
\paragraph{Example calculation (three chords on $C_8$).} \paragraph{Example calculation (three chords on $C_8$).}
Take the polygon $C_8$ with the three non-crossing chords Take the polygon $C_8$ with the three non-crossing chords