coloring_nested_tire_graphs: new note on Birkhoff's internally-6-connected condition

NEW NOTE: birkhoff_internally_6_connected.tex (3 pages)
NEW SCRIPT: experiments/draw_internally_6_connected.py
NEW FIGURE: icosahedron_internally_6_connected.pdf

States and illustrates the Birkhoff (1913) condition that any
minimum 4CT counterexample must be internally 6-connected:

  - No separating 3-cycle.
  - No separating 4-cycle.
  - No separating 5-cycle isolating ≥ 2 vertices on either side.
  - Only separating 5-cycles isolating exactly 1 vertex.

The icosahedron is the canonical example: 12 vertices all of
degree 5; the 5 neighbors of every vertex form a 5-cycle whose
removal isolates that vertex.  Sage verification confirms this:

  Vertex 0 has 5 neighbors: [1, 5, 7, 8, 11]
  Induced subgraph on neighbors: 5 edges, is_cycle=True
  After removing the 5 neighbors: 2 components, sizes=[1, 6]

Note also lists the graphs used in our framework testing:
  - Icosahedron (12 v, dual = dodecahedron)
  - Pentakis dodecahedron (32 v, dual = Buckyball)
  - Holton-McKay graphs (21 v primal, 38 v dual)

All are internally 6-connected, hence in the framework's intended
domain.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-27 00:00:46 -04:00
parent 5e9e8ed09b
commit 95d020b113
6 changed files with 858 additions and 0 deletions
@@ -0,0 +1,116 @@
"""Draw the icosahedron as the canonical "internally 6-connected"
planar triangulation. Highlight a 5-vertex cut that isolates
exactly one vertex (the only kind of small cut permitted by
Birkhoff's condition).
Internally 6-connected (Birkhoff 1913): a planar triangulation in
which every vertex cut of size ≤ 5 either fails to separate, OR is
a 5-cut whose two sides have one side equal to a single vertex.
Equivalently: no separating 3- or 4-cycle (these are forbidden);
no separating 5-cycle that isolates more than one vertex on either
side.
The icosahedron satisfies this: every vertex has degree 5, and the
5 neighbors of any vertex form a 5-cycle whose removal isolates
that vertex (1 on one side, 6 on the other).
"""
import os, sys
import matplotlib.pyplot as plt
from sage.all import graphs
HERE = os.path.dirname(os.path.abspath(__file__))
def main():
G = graphs.IcosahedralGraph()
G.is_planar(set_embedding=True)
pos = G.layout(layout='planar')
# Pick a "center" vertex (one with small distance from center of layout)
center_v = 0 # arbitrary
neighbors = list(G.neighbors(center_v))
print(f'Vertex {center_v} has {len(neighbors)} neighbors: {neighbors}')
# Verify they form a 5-cycle in the induced subgraph
nbr_graph = G.subgraph(neighbors)
print(f'Induced subgraph on neighbors: {nbr_graph.size()} edges, '
f'is_cycle={nbr_graph.is_cycle()}')
# Removing 5 neighbors: what's left
G_minus = G.copy()
G_minus.delete_vertices(neighbors)
comps = G_minus.connected_components()
print(f'After removing the 5 neighbors: {len(comps)} components, '
f'sizes={sorted(len(c) for c in comps)}')
# Expect: one component of size 1 (just center_v), another of size 6.
fig, axes = plt.subplots(1, 2, figsize=(13, 6))
# LEFT: the icosahedron with the cut highlighted
ax = axes[0]
for u, v in G.edges(labels=False):
x1, y1 = pos[u]; x2, y2 = pos[v]
if u == center_v or v == center_v:
color = '#CCCCCC'; lw = 1.0
elif u in neighbors and v in neighbors:
# Edge of the 5-cycle separator
color = '#1166CC'; lw = 4.0
else:
color = '#888888'; lw = 1.2
ax.plot([x1, x2], [y1, y2], color=color, linewidth=lw, zorder=2)
for v in G.vertices():
x, y = pos[v]
if v == center_v:
ax.plot(x, y, 'o', color='#DD2222', markersize=14, zorder=4,
markeredgecolor='black', markeredgewidth=1.5)
ax.annotate(f'{v}\n(isolated)', (x, y),
textcoords='offset points', xytext=(0, 14),
ha='center', fontsize=9, color='#AA0000')
elif v in neighbors:
ax.plot(x, y, 'o', color='#1166CC', markersize=11, zorder=3,
markeredgecolor='black', markeredgewidth=1.2)
ax.annotate(str(v), (x, y),
textcoords='offset points', xytext=(8, 8),
fontsize=8, color='#0044AA')
else:
ax.plot(x, y, 'o', color='#444444', markersize=8, zorder=2)
ax.annotate(str(v), (x, y),
textcoords='offset points', xytext=(8, 8),
fontsize=8, color='gray')
ax.set_aspect('equal'); ax.axis('off')
ax.set_title(f'Icosahedron: 5-vertex cut (blue) isolating one vertex (red).\n'
f'This is the ONLY kind of small cut permitted '
f'by Birkhoff\'s condition.', fontsize=10)
# RIGHT: schematic showing 4 cases (3 forbidden, 1 allowed)
ax = axes[1]
ax.set_xlim(0, 4); ax.set_ylim(0, 4)
ax.set_aspect('equal'); ax.axis('off')
cases = [
('3-vertex cut\n(separating triangle)', 'FORBIDDEN', 'red', 3.6, 3),
('4-vertex cut\n(separating quadrilateral)', 'FORBIDDEN', 'red', 3.6, 2),
('5-cut isolating ≥ 2 vertices', 'FORBIDDEN', 'red', 3.6, 1),
('5-cut isolating exactly 1 vertex', 'ALLOWED', 'green', 3.6, 0),
]
ax.text(2.0, 3.7, 'Birkhoff (1913): internally 6-connected',
fontsize=11, weight='bold', ha='center')
for i, (label, status, color, y_label, y_pos) in enumerate(cases):
y = 3.0 - i * 0.7
ax.text(0.1, y, label, fontsize=9, va='center')
ax.text(2.8, y, status, fontsize=10, weight='bold', color=color,
va='center')
ax.text(2.0, -0.4,
'A minimum 4CT counterexample, if one exists,\n'
'must satisfy all of the above.',
fontsize=9, ha='center', style='italic')
plt.tight_layout()
out = os.path.join(os.path.dirname(HERE), 'notes',
'icosahedron_internally_6_connected.pdf')
fig.savefig(out, bbox_inches='tight', dpi=120)
print(f'\nWrote {out}')
if __name__ == '__main__':
main()
@@ -0,0 +1,2 @@
\relax
\gdef \@abspage@last{3}
@@ -0,0 +1,601 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdflatex 2022.10.5) 27 MAY 2026 00:00
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
**birkhoff_internally_6_connected.tex
(./birkhoff_internally_6_connected.tex
LaTeX2e <2021-11-15> patch level 1
L3 programming layer <2022-02-24>
(/usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls
Document Class: article 2021/10/04 v1.4n Standard LaTeX document class
(/usr/local/texlive/2022/texmf-dist/tex/latex/base/size11.clo
File: size11.clo 2021/10/04 v1.4n Standard LaTeX file (size option)
)
\c@part=\count185
\c@section=\count186
\c@subsection=\count187
\c@subsubsection=\count188
\c@paragraph=\count189
\c@subparagraph=\count190
\c@figure=\count191
\c@table=\count192
\abovecaptionskip=\skip47
\belowcaptionskip=\skip48
\bibindent=\dimen138
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty
Package: amsmath 2021/10/15 v2.17l AMS math features
\@mathmargin=\skip49
For additional information on amsmath, use the `?' option.
(/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty
Package: amstext 2021/08/26 v2.01 AMS text
(/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty
File: amsgen.sty 1999/11/30 v2.0 generic functions
\@emptytoks=\toks16
\ex@=\dimen139
))
(/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty
Package: amsbsy 1999/11/29 v1.2d Bold Symbols
\pmbraise@=\dimen140
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty
Package: amsopn 2021/08/26 v2.02 operator names
)
\inf@bad=\count193
LaTeX Info: Redefining \frac on input line 234.
\uproot@=\count194
\leftroot@=\count195
LaTeX Info: Redefining \overline on input line 399.
\classnum@=\count196
\DOTSCASE@=\count197
LaTeX Info: Redefining \ldots on input line 496.
LaTeX Info: Redefining \dots on input line 499.
LaTeX Info: Redefining \cdots on input line 620.
\Mathstrutbox@=\box50
\strutbox@=\box51
\big@size=\dimen141
LaTeX Font Info: Redeclaring font encoding OML on input line 743.
LaTeX Font Info: Redeclaring font encoding OMS on input line 744.
\macc@depth=\count198
\c@MaxMatrixCols=\count199
\dotsspace@=\muskip16
\c@parentequation=\count266
\dspbrk@lvl=\count267
\tag@help=\toks17
\row@=\count268
\column@=\count269
\maxfields@=\count270
\andhelp@=\toks18
\eqnshift@=\dimen142
\alignsep@=\dimen143
\tagshift@=\dimen144
\tagwidth@=\dimen145
\totwidth@=\dimen146
\lineht@=\dimen147
\@envbody=\toks19
\multlinegap=\skip50
\multlinetaggap=\skip51
\mathdisplay@stack=\toks20
LaTeX Info: Redefining \[ on input line 2938.
LaTeX Info: Redefining \] on input line 2939.
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/amssymb.sty
Package: amssymb 2013/01/14 v3.01 AMS font symbols
(/usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/amsfonts.sty
Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support
\symAMSa=\mathgroup4
\symAMSb=\mathgroup5
LaTeX Font Info: Redeclaring math symbol \hbar on input line 98.
LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
(Font) U/euf/m/n --> U/euf/b/n on input line 106.
))
(/usr/local/texlive/2022/texmf-dist/tex/latex/amscls/amsthm.sty
Package: amsthm 2020/05/29 v2.20.6
\thm@style=\toks21
\thm@bodyfont=\toks22
\thm@headfont=\toks23
\thm@notefont=\toks24
\thm@headpunct=\toks25
\thm@preskip=\skip52
\thm@postskip=\skip53
\thm@headsep=\skip54
\dth@everypar=\toks26
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty
Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR)
(/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
\KV@toks@=\toks27
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty
Package: graphics 2021/03/04 v1.4d Standard LaTeX Graphics (DPC,SPQR)
(/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty
Package: trig 2021/08/11 v1.11 sin cos tan (DPC)
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
)
Package graphics Info: Driver file: pdftex.def on input line 107.
(/usr/local/texlive/2022/texmf-dist/tex/latex/graphics-def/pdftex.def
File: pdftex.def 2020/10/05 v1.2a Graphics/color driver for pdftex
))
\Gin@req@height=\dimen148
\Gin@req@width=\dimen149
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/geometry/geometry.sty
Package: geometry 2020/01/02 v5.9 Page Geometry
(/usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifvtex.sty
Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead.
(/usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty
Package: iftex 2022/02/03 v1.0f TeX engine tests
))
\Gm@cnth=\count271
\Gm@cntv=\count272
\c@Gm@tempcnt=\count273
\Gm@bindingoffset=\dimen150
\Gm@wd@mp=\dimen151
\Gm@odd@mp=\dimen152
\Gm@even@mp=\dimen153
\Gm@layoutwidth=\dimen154
\Gm@layoutheight=\dimen155
\Gm@layouthoffset=\dimen156
\Gm@layoutvoffset=\dimen157
\Gm@dimlist=\toks28
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/booktabs/booktabs.sty
Package: booktabs 2020/01/12 v1.61803398 Publication quality tables
\heavyrulewidth=\dimen158
\lightrulewidth=\dimen159
\cmidrulewidth=\dimen160
\belowrulesep=\dimen161
\belowbottomsep=\dimen162
\aboverulesep=\dimen163
\abovetopsep=\dimen164
\cmidrulesep=\dimen165
\cmidrulekern=\dimen166
\defaultaddspace=\dimen167
\@cmidla=\count274
\@cmidlb=\count275
\@aboverulesep=\dimen168
\@belowrulesep=\dimen169
\@thisruleclass=\count276
\@lastruleclass=\count277
\@thisrulewidth=\dimen170
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty
(/usr/local/texlive/2022/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty
(/usr/local/texlive/2022/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.te
x
\pgfutil@everybye=\toks29
\pgfutil@tempdima=\dimen171
\pgfutil@tempdimb=\dimen172
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-li
sts.tex))
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def
\pgfutil@abb=\box52
) (/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/pgf.revision.tex)
Package: pgfrcs 2021/05/15 v3.1.9a (3.1.9a)
))
Package: pgf 2021/05/15 v3.1.9a (3.1.9a)
(/usr/local/texlive/2022/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty
(/usr/local/texlive/2022/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
Package: pgfsys 2021/05/15 v3.1.9a (3.1.9a)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
\pgfkeys@pathtoks=\toks30
\pgfkeys@temptoks=\toks31
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.c
ode.tex
\pgfkeys@tmptoks=\toks32
))
\pgf@x=\dimen173
\pgf@y=\dimen174
\pgf@xa=\dimen175
\pgf@ya=\dimen176
\pgf@xb=\dimen177
\pgf@yb=\dimen178
\pgf@xc=\dimen179
\pgf@yc=\dimen180
\pgf@xd=\dimen181
\pgf@yd=\dimen182
\w@pgf@writea=\write3
\r@pgf@reada=\read2
\c@pgf@counta=\count278
\c@pgf@countb=\count279
\c@pgf@countc=\count280
\c@pgf@countd=\count281
\t@pgf@toka=\toks33
\t@pgf@tokb=\toks34
\t@pgf@tokc=\toks35
\pgf@sys@id@count=\count282
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg
File: pgf.cfg 2021/05/15 v3.1.9a (3.1.9a)
)
Driver file for pgf: pgfsys-pdftex.def
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.d
ef
File: pgfsys-pdftex.def 2021/05/15 v3.1.9a (3.1.9a)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-p
df.def
File: pgfsys-common-pdf.def 2021/05/15 v3.1.9a (3.1.9a)
)))
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.
code.tex
File: pgfsyssoftpath.code.tex 2021/05/15 v3.1.9a (3.1.9a)
\pgfsyssoftpath@smallbuffer@items=\count283
\pgfsyssoftpath@bigbuffer@items=\count284
)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.
code.tex
File: pgfsysprotocol.code.tex 2021/05/15 v3.1.9a (3.1.9a)
)) (/usr/local/texlive/2022/texmf-dist/tex/latex/xcolor/xcolor.sty
Package: xcolor 2021/10/31 v2.13 LaTeX color extensions (UK)
(/usr/local/texlive/2022/texmf-dist/tex/latex/graphics-cfg/color.cfg
File: color.cfg 2016/01/02 v1.6 sample color configuration
)
Package xcolor Info: Driver file: pdftex.def on input line 227.
Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1352.
Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1356.
Package xcolor Info: Model `RGB' extended on input line 1368.
Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1370.
Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1371.
Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1372.
Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1373.
Package xcolor Info: Model `Gray' substituted by `gray' on input line 1374.
Package xcolor Info: Model `wave' substituted by `hsb' on input line 1375.
)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex
Package: pgfcore 2021/05/15 v3.1.9a (3.1.9a)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex
\pgfmath@dimen=\dimen183
\pgfmath@count=\count285
\pgfmath@box=\box53
\pgfmath@toks=\toks36
\pgfmath@stack@operand=\toks37
\pgfmath@stack@operation=\toks38
)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.
tex
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic
.code.tex)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigo
nometric.code.tex)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.rando
m.code.tex)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.compa
rison.code.tex)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.
code.tex)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round
.code.tex)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.
code.tex)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integ
erarithmetics.code.tex)))
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex
\c@pgfmathroundto@lastzeros=\count286
)) (/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/math/pgfint.code.tex)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.co
de.tex
File: pgfcorepoints.code.tex 2021/05/15 v3.1.9a (3.1.9a)
\pgf@picminx=\dimen184
\pgf@picmaxx=\dimen185
\pgf@picminy=\dimen186
\pgf@picmaxy=\dimen187
\pgf@pathminx=\dimen188
\pgf@pathmaxx=\dimen189
\pgf@pathminy=\dimen190
\pgf@pathmaxy=\dimen191
\pgf@xx=\dimen192
\pgf@xy=\dimen193
\pgf@yx=\dimen194
\pgf@yy=\dimen195
\pgf@zx=\dimen196
\pgf@zy=\dimen197
)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconst
ruct.code.tex
File: pgfcorepathconstruct.code.tex 2021/05/15 v3.1.9a (3.1.9a)
\pgf@path@lastx=\dimen198
\pgf@path@lasty=\dimen199
)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage
.code.tex
File: pgfcorepathusage.code.tex 2021/05/15 v3.1.9a (3.1.9a)
\pgf@shorten@end@additional=\dimen256
\pgf@shorten@start@additional=\dimen257
)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.co
de.tex
File: pgfcorescopes.code.tex 2021/05/15 v3.1.9a (3.1.9a)
\pgfpic=\box54
\pgf@hbox=\box55
\pgf@layerbox@main=\box56
\pgf@picture@serial@count=\count287
)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicst
ate.code.tex
File: pgfcoregraphicstate.code.tex 2021/05/15 v3.1.9a (3.1.9a)
\pgflinewidth=\dimen258
)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransform
ations.code.tex
File: pgfcoretransformations.code.tex 2021/05/15 v3.1.9a (3.1.9a)
\pgf@pt@x=\dimen259
\pgf@pt@y=\dimen260
\pgf@pt@temp=\dimen261
)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.cod
e.tex
File: pgfcorequick.code.tex 2021/05/15 v3.1.9a (3.1.9a)
)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.c
ode.tex
File: pgfcoreobjects.code.tex 2021/05/15 v3.1.9a (3.1.9a)
)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathproce
ssing.code.tex
File: pgfcorepathprocessing.code.tex 2021/05/15 v3.1.9a (3.1.9a)
)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.co
de.tex
File: pgfcorearrows.code.tex 2021/05/15 v3.1.9a (3.1.9a)
\pgfarrowsep=\dimen262
)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.cod
e.tex
File: pgfcoreshade.code.tex 2021/05/15 v3.1.9a (3.1.9a)
\pgf@max=\dimen263
\pgf@sys@shading@range@num=\count288
\pgf@shadingcount=\count289
)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.cod
e.tex
File: pgfcoreimage.code.tex 2021/05/15 v3.1.9a (3.1.9a)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.
code.tex
File: pgfcoreexternal.code.tex 2021/05/15 v3.1.9a (3.1.9a)
\pgfexternal@startupbox=\box57
))
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.co
de.tex
File: pgfcorelayers.code.tex 2021/05/15 v3.1.9a (3.1.9a)
)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretranspare
ncy.code.tex
File: pgfcoretransparency.code.tex 2021/05/15 v3.1.9a (3.1.9a)
)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.
code.tex
File: pgfcorepatterns.code.tex 2021/05/15 v3.1.9a (3.1.9a)
)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.
tex
File: pgfcorerdf.code.tex 2021/05/15 v3.1.9a (3.1.9a)
)))
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.cod
e.tex
File: pgfmoduleshapes.code.tex 2021/05/15 v3.1.9a (3.1.9a)
\pgfnodeparttextbox=\box58
)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.
tex
File: pgfmoduleplot.code.tex 2021/05/15 v3.1.9a (3.1.9a)
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version
-0-65.sty
Package: pgfcomp-version-0-65 2021/05/15 v3.1.9a (3.1.9a)
\pgf@nodesepstart=\dimen264
\pgf@nodesepend=\dimen265
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version
-1-18.sty
Package: pgfcomp-version-1-18 2021/05/15 v3.1.9a (3.1.9a)
))
(/usr/local/texlive/2022/texmf-dist/tex/latex/pgf/utilities/pgffor.sty
(/usr/local/texlive/2022/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex)
) (/usr/local/texlive/2022/texmf-dist/tex/latex/pgf/math/pgfmath.sty
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex))
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex
Package: pgffor 2021/05/15 v3.1.9a (3.1.9a)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex)
\pgffor@iter=\dimen266
\pgffor@skip=\dimen267
\pgffor@stack=\toks39
\pgffor@toks=\toks40
))
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.cod
e.tex
Package: tikz 2021/05/15 v3.1.9a (3.1.9a)
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothan
dlers.code.tex
File: pgflibraryplothandlers.code.tex 2021/05/15 v3.1.9a (3.1.9a)
\pgf@plot@mark@count=\count290
\pgfplotmarksize=\dimen268
)
\tikz@lastx=\dimen269
\tikz@lasty=\dimen270
\tikz@lastxsaved=\dimen271
\tikz@lastysaved=\dimen272
\tikz@lastmovetox=\dimen273
\tikz@lastmovetoy=\dimen274
\tikzleveldistance=\dimen275
\tikzsiblingdistance=\dimen276
\tikz@figbox=\box59
\tikz@figbox@bg=\box60
\tikz@tempbox=\box61
\tikz@tempbox@bg=\box62
\tikztreelevel=\count291
\tikznumberofchildren=\count292
\tikznumberofcurrentchild=\count293
\tikz@fig@count=\count294
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.cod
e.tex
File: pgfmodulematrix.code.tex 2021/05/15 v3.1.9a (3.1.9a)
\pgfmatrixcurrentrow=\count295
\pgfmatrixcurrentcolumn=\count296
\pgf@matrix@numberofcolumns=\count297
)
\tikz@expandcount=\count298
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie
s/tikzlibrarytopaths.code.tex
File: tikzlibrarytopaths.code.tex 2021/05/15 v3.1.9a (3.1.9a)
)))
(/usr/local/texlive/2022/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie
s/tikzlibrarybackgrounds.code.tex
File: tikzlibrarybackgrounds.code.tex 2021/05/15 v3.1.9a (3.1.9a)
\pgf@layerbox@background=\box63
\pgf@layerboxsaved@background=\box64
)
(/usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
File: l3backend-pdftex.def 2022-02-07 L3 backend support: PDF output (pdfTeX)
\l__color_backend_stack_int=\count299
\l__pdf_internal_box=\box65
)
(./birkhoff_internally_6_connected.aux)
\openout1 = `birkhoff_internally_6_connected.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 20.
LaTeX Font Info: ... okay on input line 20.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 20.
LaTeX Font Info: ... okay on input line 20.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 20.
LaTeX Font Info: ... okay on input line 20.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 20.
LaTeX Font Info: ... okay on input line 20.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 20.
LaTeX Font Info: ... okay on input line 20.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 20.
LaTeX Font Info: ... okay on input line 20.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 20.
LaTeX Font Info: ... okay on input line 20.
(/usr/local/texlive/2022/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
\scratchcounter=\count300
\scratchdimen=\dimen277
\scratchbox=\box66
\nofMPsegments=\count301
\nofMParguments=\count302
\everyMPshowfont=\toks41
\MPscratchCnt=\count303
\MPscratchDim=\dimen278
\MPnumerator=\count304
\makeMPintoPDFobject=\count305
\everyMPtoPDFconversion=\toks42
) (/usr/local/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
85.
(/usr/local/texlive/2022/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
e
))
*geometry* driver: auto-detecting
*geometry* detected driver: pdftex
*geometry* verbose mode - [ preamble ] result:
* driver: pdftex
* paper: <default>
* layout: <same size as paper>
* layoutoffset:(h,v)=(0.0pt,0.0pt)
* modes:
* h-part:(L,W,R)=(72.26999pt, 469.75502pt, 72.26999pt)
* v-part:(T,H,B)=(72.26999pt, 650.43001pt, 72.26999pt)
* \paperwidth=614.295pt
* \paperheight=794.96999pt
* \textwidth=469.75502pt
* \textheight=650.43001pt
* \oddsidemargin=0.0pt
* \evensidemargin=0.0pt
* \topmargin=-37.0pt
* \headheight=12.0pt
* \headsep=25.0pt
* \topskip=11.0pt
* \footskip=30.0pt
* \marginparwidth=59.0pt
* \marginparsep=10.0pt
* \columnsep=10.0pt
* \skip\footins=10.0pt plus 4.0pt minus 2.0pt
* \hoffset=0.0pt
* \voffset=0.0pt
* \mag=1000
* \@twocolumnfalse
* \@twosidefalse
* \@mparswitchfalse
* \@reversemarginfalse
* (1in=72.27pt=25.4mm, 1cm=28.453pt)
LaTeX Font Info: Trying to load font information for U+msa on input line 21.
(/usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsa.fd
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
)
LaTeX Font Info: Trying to load font information for U+msb on input line 21.
(/usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsb.fd
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
)
<icosahedron_internally_6_connected.pdf, id=4, 835.14175pt x 430.92088pt>
File: icosahedron_internally_6_connected.pdf Graphic file (type pdf)
<use icosahedron_internally_6_connected.pdf>
Package pdftex.def Info: icosahedron_internally_6_connected.pdf used on input
line 93.
(pdftex.def) Requested size: 469.75502pt x 242.38582pt.
[1
{/usr/local/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] [2 <./i
cosahedron_internally_6_connected.pdf>] [3] (./birkhoff_internally_6_connected.
aux) )
Here is how much of TeX's memory you used:
13977 strings out of 478268
281071 string characters out of 5846347
548309 words of memory out of 5000000
31948 multiletter control sequences out of 15000+600000
479174 words of font info for 66 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191
84i,6n,89p,440b,822s stack positions out of 10000i,1000n,20000p,200000b,200000s
{/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1
.enc}</usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.
pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.p
fb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pf
b></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb>
</usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr17.pfb></
usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></u
sr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmti10.pfb></us
r/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt10.pfb></usr
/local/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfrm1095.pfb>
Output written on birkhoff_internally_6_connected.pdf (3 pages, 161512 bytes).
PDF statistics:
185 PDF objects out of 1000 (max. 8388607)
52 compressed objects within 1 object stream
0 named destinations out of 1000 (max. 500000)
18 words of extra memory for PDF output out of 10000 (max. 10000000)
@@ -0,0 +1,139 @@
\documentclass[11pt]{article}
\usepackage{amsmath,amssymb,amsthm}
\usepackage{graphicx}
\usepackage{geometry}
\usepackage{booktabs}
\usepackage{tikz}
\usetikzlibrary{backgrounds}
\geometry{margin=1in}
\title{Birkhoff's condition: minimum 4CT counterexamples are
internally $6$-connected}
\author{}
\date{}
\newtheorem*{defn}{Definition}
\newtheorem*{thm}{Theorem}
\newtheorem*{lem}{Lemma}
\newtheorem*{rem}{Remark}
\begin{document}
\maketitle
\section*{The condition}
\begin{defn}[Internally $6$-connected]
A planar triangulation $G$ is \emph{internally $6$-connected} if
every vertex cut of $G$ of size $\le 5$ either fails to separate
$G$, or is a $5$-cut whose two sides have one side equal to a
single vertex.
Equivalently: $G$ has no separating triangle (3-cycle), no
separating quadrilateral (4-cycle), and any separating pentagon
(5-cycle) isolates exactly one vertex on one side.
\end{defn}
\begin{thm}[Birkhoff 1913]
If a minimum $4$-colour counterexample (= minimum planar
triangulation requiring more than $4$ colours for a proper vertex
colouring) exists, it must be internally $6$-connected.
\end{thm}
The idea behind the proof: if $G$ has a separating $k$-cycle for
$k \in \{3, 4, 5\}$ with $\ge 2$ vertices on each side, one can
$4$-colour each side independently and patch the colourings along
the cycle, contradicting minimality. Only the $5$-cycle isolating
$1$ vertex is irreducible by this argument.
\section*{Cases at a glance}
\begin{center}
\begin{tikzpicture}[scale=1.1]
\node[anchor=west] at (0, 4.3) {\textbf{Internally $6$-connected $=$ all four below:}};
% case row
\node[anchor=west] at (0, 3.6) {\textbullet\, no separating $3$-cycle};
\node[red, anchor=west] at (5.0, 3.6) {FORBIDDEN};
\node[anchor=west] at (0, 2.9) {\textbullet\, no separating $4$-cycle};
\node[red, anchor=west] at (5.0, 2.9) {FORBIDDEN};
\node[anchor=west] at (0, 2.2) {\textbullet\, no separating $5$-cycle isolating $\ge 2$ on either side};
\node[red, anchor=west] at (5.0, 2.2) {FORBIDDEN};
\node[anchor=west] at (0, 1.5) {\textbullet\, separating $5$-cycle isolating $1$ vertex};
\node[green!50!black, anchor=west] at (5.0, 1.5) {ALLOWED};
% Schematic: a 5-cycle with 1 isolated vertex on one side
\begin{scope}[shift={(7, 2.7)}, scale=0.5]
\node[circle, fill=red!80!black, inner sep=2pt] (c) at (0, 0) {};
\foreach \i in {0,...,4} {
\pgfmathsetmacro{\ang}{72*\i+90}
\node[circle, fill=blue!80!black, inner sep=1.8pt] (n\i) at (\ang:1.4) {};
\draw[blue, thick] (c) -- (n\i);
}
\foreach \i in {0,...,4} {
\pgfmathtruncatemacro{\j}{mod(\i+1,5)}
\draw[blue, very thick] (n\i) -- (n\j);
}
\node[red] at (0, -1.95) {\small allowed};
\end{scope}
\end{tikzpicture}
\end{center}
The right-hand schematic shows the only permitted case: a vertex
(red) surrounded by its $5$ neighbours (blue) which form a $5$-cycle.
Removing the $5$ blue vertices isolates the red one. This is what
the next section's picture shows in the icosahedron.
\section*{Icosahedron: the smallest example}
The icosahedral graph (the $1$-skeleton of the regular icosahedron)
has $12$ vertices, all of degree $5$, and is a planar triangulation.
Every vertex's $5$ neighbours form a $5$-cycle (the ``link'' of the
vertex); removing them isolates the vertex. This is the only kind
of small cut: the icosahedron is internally $6$-connected.
\begin{center}
\includegraphics[width=\textwidth]{icosahedron_internally_6_connected.pdf}
\end{center}
On the left, the icosahedron's planar (Schlegel) embedding: the red
vertex (here vertex $0$) is removed from the graph by the $5$-cut
consisting of its $5$ blue neighbours $\{1, 5, 7, 8, 11\}$. The
blue $5$-cycle is the separator; on one side is the isolated red
vertex, on the other are the remaining $6$ vertices. This is the
allowed Birkhoff configuration.
\section*{Why this matters for the framework}
For our cut-tire chain DP framework, we test on graphs whose primal
triangulation is internally $6$-connected:
\begin{itemize}
\item \textbf{Icosahedron} ($V = 12$): smallest example. Its
cubic dual = dodecahedron ($V = 20$).
\item \textbf{Pentakis dodecahedron} ($V = 32$): icosahedron with
each face subdivided. Cubic dual = truncated icosahedron =
``Buckminsterfullerene'' ($V = 60$).
\item \textbf{Holton--McKay graphs} ($V = 21$ primal triangulation,
$V = 38$ cubic dual): the smallest non-Hamiltonian
internally-$6$-connected cubic plane graphs, candidates for
a minimum counterexample in Tait's reduction even though all
are $3$-edge-colourable.
\end{itemize}
If our framework's claims hold for all internally $6$-connected
triangulations, then a minimum $4$CT counterexample (if it existed)
would be in the framework's domain --- and any structural obstruction
the framework finds would refute the counterexample's existence.
\section*{Sanity check}
Sage verification (in
\texttt{experiments/draw\_internally\_6\_connected.py}):
\begin{verbatim}
Vertex 0 has 5 neighbors: [1, 5, 7, 8, 11]
Induced subgraph on neighbors: 5 edges, is_cycle=True
After removing the 5 neighbors: 2 components, sizes=[1, 6]
\end{verbatim}
So vertex $0$'s neighbourhood is indeed a $5$-cycle, removing it
isolates vertex $0$ from the other $6$ vertices. By symmetry the
same holds at every vertex of the icosahedron.
\end{document}