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
\@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 }
\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
restricted \write18 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.
(pdftex.def) Requested size: 272.45877pt x 107.18588pt.
[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)
<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.
<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)
<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.
[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:
4641 strings out of 478268
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
479481 words of font info for 67 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191
55i,8n,63p,245b,198s stack positions out of 10000i,1000n,20000p,200000b,200000s
{/u
sr/local/texlive/2022/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.enc}</us
r/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb></usr
/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb></usr/
local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb></usr/l
ocal/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/lo
cal/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi12.pfb></usr/loc
al/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi8.pfb></usr/local
/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/local/t
exlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr12.pfb></usr/local/tex
live/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr17.pfb></usr/local/texli
ve/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr6.pfb></usr/local/texlive/
2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb></usr/local/texlive/202
2/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/local/texlive/2022
/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb></usr/local/texlive/2022/t
exmf-dist/fonts/type1/public/amsfonts/cm/cmti10.pfb></usr/local/texlive/2022/te
xmf-dist/fonts/type1/public/amsfonts/cm/cmtt10.pfb></usr/local/texlive/2022/tex
mf-dist/fonts/type1/public/cm-super/sfrm1095.pfb>
Output written on menagerie.pdf (5 pages, 321355 bytes).
55i,10n,63p,245b,198s stack positions out of 10000i,1000n,20000p,200000b,200000s
{/usr/local/texlive/2022/texmf-di
st/fonts/enc/dvips/cm-super/cm-super-ts1.enc}</usr/local/texlive/2022/texmf-dis
t/fonts/type1/public/amsfonts/cm/cmbx10.pfb></usr/local/texlive/2022/texmf-dist
/fonts/type1/public/amsfonts/cm/cmbx12.pfb></usr/local/texlive/2022/texmf-dist/
fonts/type1/public/amsfonts/cm/cmex10.pfb></usr/local/texlive/2022/texmf-dist/f
onts/type1/public/amsfonts/cm/cmmi10.pfb></usr/local/texlive/2022/texmf-dist/fo
nts/type1/public/amsfonts/cm/cmmi12.pfb></usr/local/texlive/2022/texmf-dist/fon
ts/type1/public/amsfonts/cm/cmmi6.pfb></usr/local/texlive/2022/texmf-dist/fonts
/type1/public/amsfonts/cm/cmmi8.pfb></usr/local/texlive/2022/texmf-dist/fonts/t
ype1/public/amsfonts/cm/cmr10.pfb></usr/local/texlive/2022/texmf-dist/fonts/typ
e1/public/amsfonts/cm/cmr12.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1
/public/amsfonts/cm/cmr17.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/p
ublic/amsfonts/cm/cmr6.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/publ
ic/amsfonts/cm/cmr8.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/
amsfonts/cm/cmsy10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/a
msfonts/cm/cmsy8.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/ams
fonts/cm/cmti10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsf
onts/cm/cmtt10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/cm-su
per/sfrm1095.pfb>
Output written on menagerie.pdf (5 pages, 335002 bytes).
PDF statistics:
116 PDF objects out of 1000 (max. 8388607)
62 compressed objects within 1 object stream
121 PDF objects out of 1000 (max. 8388607)
65 compressed objects within 1 object stream
0 named destinations out of 1000 (max. 500000)
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
$p, q \in \{2, 3, 4, 5, 6\}$.
More generally, a polygon with $r$ chords forming a matching has
chromatic polynomial computable by the same transfer-matrix idea
along the $r{+}1$ paths between consecutive chord endpoints on the
polygon, with a product constraint at each chord endpoint.
\paragraph{General method.} For $G = C_n + M$ where $M$ is a
matching of non-crossing chords, the edge chromatic polynomial can be
computed by summing over chord-color assignments and applying a
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$).}
Take the polygon $C_8$ with the three non-crossing chords