coloring_nested_tire_graphs: switch bridge example to barbell (non-pendant bridge)

The previous bridge example used a pendant edge as the bridge.  A
pendant edge IS technically a bridge (single-edge cut), but the
intended notion was a "proper" non-pendant bridge: an edge cut
connecting two non-trivial subgraphs.  Replaced with the smallest
example:

  - B_out = 4-cycle on {0, 1, 2, 3}.
  - O = barbell on {4..9}: two disjoint triangles {4, 5, 6} and
    {7, 8, 9} connected by the bridge edge 6-7.
  - Annular triangulation by hand (12 triangles, all listed in the
    generator script with planarity verified by Sage).

The barbell case is structurally cleaner: BOTH endpoints of the
bridge have degree >= 2 in O, and the interior dual subgraph has
the two bridge-incident annular faces (d_5, d_6) as its trivalent
theta-graph vertices (in the pendant case, the trivalent vertices
were NOT bridge-incident, which was confusing).

Updates fig_partial_tire_dual_bridge.png and the figure caption.

Paper stays at 9 pages.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-25 20:52:50 -04:00
parent 7e4ccf2cc2
commit 5fa6e9e840
7 changed files with 178 additions and 155 deletions
@@ -1,17 +1,18 @@
"""Draw a partial tire dual D(T) for a tire whose inner outerplanar
graph O has a bridge.
graph O has a (non-pendant) bridge: a single edge whose removal
disconnects O into two non-trivial components.
Tire construction:
- Outer cycle B_out: triangle on {0, 1, 2}.
- Inner outerplanar O on {3, 4, 5, 6}: triangle 3-4-5 plus pendant
edge 5-6 (the bridge of O).
- Annular triangulation with 8 triangles (computed by hand below).
- Outer cycle B_out: 4-cycle on {0, 1, 2, 3}.
- Inner outerplanar O on {4..9}: two disjoint triangles {4, 5, 6}
and {7, 8, 9}, connected by the bridge edge 6-7.
- Annular triangulation built by hand below.
The bridge 5-6 has both incident faces in the annular region, so in
the partial tire dual it contributes an interior dual edge (not a
leaf). This makes the interior dual subgraph a theta graph rather
than a single cycle: two trivalent vertices (the two annular faces
incident to the bridge) connected by three paths.
The bridge 6-7 has both incident faces in the annular region, so in
the partial tire dual it contributes an interior dual edge (not
leaves). This makes the interior dual subgraph a theta graph: two
trivalent vertices (the two annular faces incident to the bridge,
or those with all interior edges) connected by three paths.
"""
import math
import os
@@ -21,54 +22,72 @@ from collections import defaultdict
import matplotlib.pyplot as plt
import matplotlib.patches as patches
from sage.all import Graph
# Explicit vertex positions
POS = {
0: (0.0, 1.0),
1: (-0.866, -0.5),
2: (0.866, -0.5),
3: (0.0, 0.32),
4: (-0.27, -0.17),
5: (0.13, -0.17),
6: (0.52, -0.07),
0: (0.0, 1.6), # outer top
1: (-1.6, 0.0), # outer left
2: (0.0, -1.6), # outer bottom
3: (1.6, 0.0), # outer right
4: (-0.65, 0.42), # left triangle, top
5: (-0.65, -0.42), # left triangle, bottom
6: (-0.20, 0.0), # left triangle, right (= bridge endpoint 1)
7: (0.20, 0.0), # right triangle, left (= bridge endpoint 2)
8: (0.65, 0.42), # right triangle, top
9: (0.65, -0.42), # right triangle, bottom
}
# Annular triangles (in lattice-path-like order, but here just listed)
TRIANGLES = [
(0, 1, 4), # T1 -- O-move
(0, 4, 3), # T2 -- has edge 4-3 boundary (inner triangle)
(1, 2, 5), # T3 -- O-move
(1, 5, 4), # T4 -- inner-triangle-edge boundary
(2, 0, 6), # T5 -- O-move
(0, 3, 6), # T6 -- ALL INTERIOR (bridge neighbour)
(3, 5, 6), # T7 -- inner-triangle-edge boundary, contains bridge
(5, 2, 6), # T8 -- ALL INTERIOR (bridge neighbour)
]
# Tire edges (all)
T_EDGES = [
# outer cycle (B_out)
(0, 1), (1, 2), (2, 0),
# O: triangle 3-4-5
(3, 4), (4, 5), (3, 5),
# O: pendant / bridge
(5, 6),
# spokes
(0, 3), (1, 4), (2, 5),
# diagonals from annular triangulation
(0, 4), (1, 5), (0, 6), (2, 6), (3, 6),
# outer cycle B_out (length 4)
(0, 1), (1, 2), (2, 3), (3, 0),
# O: triangle 4-5-6
(4, 5), (5, 6), (4, 6),
# O: triangle 7-8-9
(7, 8), (8, 9), (7, 9),
# O: bridge
(6, 7),
# annular edges (spokes + diagonals chosen to triangulate)
(0, 4), (0, 6), (0, 8),
(1, 4), (1, 5),
(2, 5), (2, 6), (2, 7), (2, 9),
(3, 8), (3, 9),
(0, 7), # extra diagonal to triangulate top
]
# Boundary edges
B_OUT_EDGES = [(0, 1), (1, 2), (2, 0)]
# Edges of O on inner-triangle-face boundary (i.e., NOT the bridge)
B_IN_EDGES = [(3, 4), (4, 5), (3, 5)]
# Bridge edge (interior to annulus)
BRIDGE = (5, 6)
# Annular triangles -- listed explicitly so we know exactly which
# faces are which. 12 of them.
TRIANGLES = [
(0, 1, 4), # top-left top
(1, 4, 5), # left side, with triangle 1
(1, 2, 5), # bottom-left
(2, 5, 6), # right of left-triangle, bottom
(0, 4, 6), # right of left-triangle, top
(0, 6, 7), # top-center over the bridge (bridge-incident)
(2, 6, 7), # bottom-center over the bridge (bridge-incident)
(0, 7, 8), # right of right-triangle, top
(2, 7, 9), # right of right-triangle, bottom
(0, 8, 3), # top-right
(3, 8, 9), # right side, with triangle 2
(2, 9, 3), # bottom-right
]
# Boundary edges:
B_OUT_EDGES = [(0, 1), (1, 2), (2, 3), (3, 0)]
# Edges of O on inner-triangle-face boundaries (= NOT the bridge):
B_IN_EDGES = [(4, 5), (5, 6), (4, 6),
(7, 8), (8, 9), (7, 9)]
BRIDGE = (6, 7)
def main():
# Map: edge -> list of triangle indices containing it
# Sanity-check via sage that the graph is planar
G = Graph(T_EDGES)
assert G.is_planar(), "Constructed tire is not planar"
print(f"Tire graph: n={G.order()}, m={G.size()}, planar=True")
# Map: edge -> triangle indices containing it
edge_to_tris = defaultdict(list)
for i, t in enumerate(TRIANGLES):
for e in (frozenset({t[0], t[1]}),
@@ -76,67 +95,84 @@ def main():
frozenset({t[0], t[2]})):
edge_to_tris[e].append(i)
# Verify each B_out edge is in exactly 1 annular triangle
# Verify each B_out edge in exactly 1 annular triangle
for u, v in B_OUT_EDGES:
ts = edge_to_tris[frozenset({u, v})]
assert len(ts) == 1, f"B_out edge {u}-{v} in {ts}"
# Each B_in (= non-bridge O edge) is in exactly 1 annular triangle
assert len(ts) == 1, f"B_out edge {u}-{v} in {ts} (expected 1)"
# Each B_in (non-bridge O edge) in exactly 1 annular triangle
for u, v in B_IN_EDGES:
ts = edge_to_tris[frozenset({u, v})]
assert len(ts) == 1, f"B_in edge {u}-{v} in {ts}"
# Bridge is in exactly 2 annular triangles (interior to annulus)
assert len(ts) == 1, f"B_in edge {u}-{v} in {ts} (expected 1)"
# Bridge in exactly 2 annular triangles
bts = edge_to_tris[frozenset(BRIDGE)]
print(f"Bridge {BRIDGE} is in annular triangles {bts}")
assert len(bts) == 2
# Interior dual subgraph: connect annular triangles sharing an edge
# Verify every edge of T is accounted for
seen_in_tris = set()
for t in TRIANGLES:
for e in (frozenset({t[0], t[1]}),
frozenset({t[1], t[2]}),
frozenset({t[0], t[2]})):
seen_in_tris.add(e)
all_T_edges = {frozenset(e) for e in T_EDGES}
# Each edge appears in at least one triangle EXCEPT it might be that
# boundary edges to non-annular faces are accounted for differently.
# Annular triangles use boundary edges (B_out and inner-triangle-of-O
# edges) plus interior annular edges. Every edge of T should appear
# in at least one annular triangle EXCEPT the inner faces of O don't
# exist as separate annular triangles. Wait, the inner triangle
# faces of O (= {4,5,6} and {7,8,9}) are themselves face boundaries
# of T but NOT in the annular region. So edges of the inner
# triangles of O appear in exactly ONE annular triangle (across the
# boundary) + the inner triangle face on the other side.
# Check: every T edge should appear in at most 2 annular triangles
# (and at least 1 if it's incident to any annular face).
for e in all_T_edges:
n = len(edge_to_tris[e])
assert n in (1, 2), \
f"Edge {sorted(e)} appears in {n} annular triangles"
# Interior dual adjacencies
n_tri = len(TRIANGLES)
tri_adj = defaultdict(set)
for e, ts in edge_to_tris.items():
if len(ts) == 2:
tri_adj[ts[0]].add(ts[1])
tri_adj[ts[1]].add(ts[0])
print("Interior dual subgraph degree sequence:")
for i in range(n_tri):
print(f" T{i+1} ({TRIANGLES[i]}): degree {len(tri_adj[i])}")
print(f" T{i} {TRIANGLES[i]}: degree {len(tri_adj[i])}")
# Centroids of triangles for d_f positions
centroids = []
for t in TRIANGLES:
cx = (POS[t[0]][0] + POS[t[1]][0] + POS[t[2]][0]) / 3
cy = (POS[t[0]][1] + POS[t[1]][1] + POS[t[2]][1]) / 3
centroids.append((cx, cy))
# Centroids of triangles (for d_f positions)
centroids = [((POS[t[0]][0] + POS[t[1]][0] + POS[t[2]][0]) / 3,
(POS[t[0]][1] + POS[t[1]][1] + POS[t[2]][1]) / 3)
for t in TRIANGLES]
# === Plot ===
fig, ax = plt.subplots(figsize=(10, 9))
# Draw underlying tire edges faintly
outer_set = {0, 1, 2}
inner_set = {3, 4, 5, 6}
outer_set = {0, 1, 2, 3}
inner_set = {4, 5, 6, 7, 8, 9}
bridge_fs = frozenset(BRIDGE)
for u, v in T_EDGES:
x1, y1 = POS[u]; x2, y2 = POS[v]
if u in outer_set and v in outer_set:
color = '#a8c9e8'; lw = 2.0
if frozenset({u, v}) == bridge_fs:
color, lw = '#cc6677', 2.8 # bridge of O
elif u in outer_set and v in outer_set:
color, lw = '#a8c9e8', 2.0
elif u in inner_set and v in inner_set:
# Distinguish bridge (pendant) from triangle edges
if frozenset({u, v}) == frozenset(BRIDGE):
color = '#cc6677'; lw = 2.5 # darker red for bridge
else:
color = '#e8a8a8'; lw = 2.0
color, lw = '#e8a8a8', 2.0
else:
color = '#cccccc'; lw = 1.0
color, lw = '#cccccc', 1.0
ax.plot([x1, x2], [y1, y2], color=color, linewidth=lw, zorder=1)
# Tire vertices
for v in [0, 1, 2]:
for v in outer_set:
x, y = POS[v]
ax.plot(x, y, 'o', color='#a8c9e8', markersize=15, zorder=2)
ax.plot(x, y, 'o', color='#a8c9e8', markersize=16, zorder=2)
ax.annotate(str(v), (x, y), color='white', ha='center', va='center',
fontsize=9, fontweight='bold', zorder=3)
for v in [3, 4, 5, 6]:
for v in inner_set:
x, y = POS[v]
ax.plot(x, y, 'o', color='#e8a8a8', markersize=13, zorder=2)
ax.annotate(str(v), (x, y), color='white', ha='center', va='center',
@@ -144,24 +180,22 @@ def main():
DUAL_COLOR = '#7d3c98'
LEAF_COLOR = '#e67e22'
BRIDGE_DUAL_COLOR = '#cc4444' # color the bridge's dual edge differently
BRIDGE_DUAL_COLOR = '#cc4444'
# Interior dual edges
for i in range(n_tri):
for j in tri_adj[i]:
if j <= i:
continue
x1, y1 = centroids[i]; x2, y2 = centroids[j]
# Find shared edge to colour-code bridge edge
if j <= i: continue
ti_es = {frozenset({TRIANGLES[i][a], TRIANGLES[i][b]})
for a, b in [(0, 1), (1, 2), (0, 2)]}
tj_es = {frozenset({TRIANGLES[j][a], TRIANGLES[j][b]})
for a, b in [(0, 1), (1, 2), (0, 2)]}
shared = (ti_es & tj_es).pop()
if shared == frozenset(BRIDGE):
if shared == bridge_fs:
ec, lw = BRIDGE_DUAL_COLOR, 3.0
else:
ec, lw = DUAL_COLOR, 2.0
x1, y1 = centroids[i]; x2, y2 = centroids[j]
ax.plot([x1, x2], [y1, y2], color=ec, linewidth=lw, zorder=4)
# Leaves for B_out edges
@@ -170,18 +204,15 @@ def main():
midx = (POS[u][0] + POS[v][0]) / 2
midy = (POS[u][1] + POS[v][1]) / 2
d = math.sqrt(midx**2 + midy**2)
push = 1.20
push = 1.18
lpos = (midx * push / d, midy * push / d)
cx, cy = centroids[ti]
ax.plot([cx, lpos[0]], [cy, lpos[1]], color=LEAF_COLOR,
linewidth=1.5, linestyle='--', zorder=4)
ax.plot(lpos[0], lpos[1], 'D', color=LEAF_COLOR, markersize=11,
ax.plot(lpos[0], lpos[1], 'D', color=LEAF_COLOR, markersize=10,
zorder=5)
ax.annotate(f"$\\ell^{{\\mathrm{{out}}}}_{{{u},{v}}}$", lpos,
color='white', ha='center', va='center', fontsize=6,
fontweight='bold', zorder=6)
# Leaves for non-bridge B_in edges (= the 3 inner triangle edges)
# Leaves for non-bridge edges of O (= inner triangle edges)
for u, v in B_IN_EDGES:
ti = edge_to_tris[frozenset({u, v})][0]
midx = (POS[u][0] + POS[v][0]) / 2
@@ -190,30 +221,21 @@ def main():
vx, vy = midx - cx, midy - cy
norm = math.sqrt(vx*vx + vy*vy)
offset = 0.10
if norm > 1e-9:
nx, ny = vx / norm, vy / norm
else:
nx, ny = 0, -1
nx, ny = (vx / norm, vy / norm) if norm > 1e-9 else (0, -1)
lpos = (midx + nx * offset, midy + ny * offset)
ax.plot([cx, lpos[0]], [cy, lpos[1]], color=LEAF_COLOR,
linewidth=1.5, linestyle='--', zorder=4)
ax.plot(lpos[0], lpos[1], 'D', color=LEAF_COLOR, markersize=11,
ax.plot(lpos[0], lpos[1], 'D', color=LEAF_COLOR, markersize=10,
zorder=5)
ax.annotate(f"$\\ell^{{\\mathrm{{in}}}}_{{{u},{v}}}$", lpos,
color='white', ha='center', va='center', fontsize=6,
fontweight='bold', zorder=6)
# Interior dual vertices d_f, highlighting the two degree-3
# vertices in a darker color (these are the trivalent vertices
# of the theta graph that the interior dual forms).
# Interior dual vertices, highlight degree-3 (trivalent)
for ti, (cx, cy) in enumerate(centroids):
is_deg3 = (len(tri_adj[ti]) == 3)
marker_color = '#5a2273' if is_deg3 else DUAL_COLOR
ax.plot(cx, cy, 's', color=marker_color, markersize=15, zorder=5)
deg = len(tri_adj[ti])
c = '#5a2273' if deg == 3 else DUAL_COLOR
ax.plot(cx, cy, 's', color=c, markersize=14, zorder=5)
ax.annotate(f"$d_{{{ti}}}$", (cx, cy), color='white', ha='center',
va='center', fontsize=7, fontweight='bold', zorder=6)
va='center', fontsize=6, fontweight='bold', zorder=6)
# Legend
legend_items = [
plt.Line2D([], [], marker='o', color='w', markerfacecolor='#a8c9e8',
markersize=12, label='$B_{\\mathrm{out}}$ vertex'),
@@ -223,13 +245,13 @@ def main():
label='$B_{\\mathrm{out}}$ edge'),
plt.Line2D([], [], color='#e8a8a8', linewidth=2.0,
label='triangle edge of $O$'),
plt.Line2D([], [], color='#cc6677', linewidth=2.5,
label='bridge of $O$ (= pendant)'),
plt.Line2D([], [], color='#cc6677', linewidth=2.8,
label='bridge of $O$'),
plt.Line2D([], [], marker='s', color='w', markerfacecolor=DUAL_COLOR,
markersize=12, label='$d_f$ (degree 2 in interior dual)'),
markersize=12, label='$d_f$ (deg 2 in interior dual)'),
plt.Line2D([], [], marker='s', color='w', markerfacecolor='#5a2273',
markersize=12,
label='$d_f$ (degree 3 -- theta-graph trivalent)'),
label='$d_f$ (deg 3 -- trivalent theta-graph vertex)'),
plt.Line2D([], [], marker='D', color='w', markerfacecolor=LEAF_COLOR,
markersize=10, label='leaf'),
plt.Line2D([], [], color=DUAL_COLOR, linewidth=2.0,
@@ -242,16 +264,18 @@ def main():
ax.legend(handles=legend_items, loc='upper left',
bbox_to_anchor=(1.02, 1.0), fontsize=8, frameon=False)
ax.set_xlim(-1.30, 1.50)
ax.set_ylim(-1.20, 1.20)
ax.set_xlim(-2.10, 2.60)
ax.set_ylim(-1.90, 1.90)
ax.set_aspect('equal')
ax.axis('off')
ax.set_title(
'Partial tire dual $D(T)$ when $O$ has a bridge\n'
'$O$ = triangle $\\{3,4,5\\}$ + pendant edge $5$--$6$;\n'
'interior dual is a theta graph (2 deg-3 vertices + 3 paths), '
'not a cycle.',
fontsize=11)
'$D(T)$ when $O$ is a barbell (two triangles + one bridge edge)\n'
'$O$ = triangle $\\{4,5,6\\}$ $\\cup$ bridge $6$--$7$ $\\cup$ '
'triangle $\\{7,8,9\\}$;\n'
'bridge is interior to the annulus, so it contributes an interior '
'dual edge (red).\n'
'Interior dual is a theta graph (2 trivalent $d_f$ + 3 paths).',
fontsize=10)
HERE = os.path.dirname(os.path.abspath(__file__))
out = os.path.join(HERE, 'partial_tire_dual_bridge.png')
Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 143 KiB

+3 -3
View File
@@ -11,21 +11,21 @@
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces The partial tire dual $D(T)$ (purple squares + orange diamonds) drawn on top of a small tire graph $T$ (faint) with $m = 6$ and $k = 4$. The ten interior vertices $d_f$ at the centroids of the annular triangles form a single $10$-cycle (solid purple); each boundary edge of the annular region (either of $B_{\mathrm {out}}$ or of $B_{\mathrm {in}}$) contributes a degree-$1$ leaf (orange diamond) attached to the unique annular face incident to it (dashed orange), giving the structure $C_{10} \circ K_1$ of Proposition\nonbreakingspace 1.8\hbox {}.}}{4}{}\protected@file@percent }
\newlabel{fig:partial-tire-dual-example}{{3}{4}}
\newlabel{prop:partial-tire-dual-structure}{{1.8}{4}}
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Partial tire dual $D(T)$ when the inner outerplanar graph $O$ has a bridge. Here $B_{\mathrm {out}}$ is a triangle on $\{0,1,2\}$ and $O$ is a triangle $\{3,4,5\}$ with a pendant edge $5$--$6$ (the bridge of $O$). Because both faces incident to the bridge are annular triangles, the bridge contributes an \emph {interior dual edge} (highlighted in red) rather than two leaves; consequently the interior dual subgraph is no longer the single $(n+m)$-cycle of Proposition\nonbreakingspace 1.8\hbox {}, but a theta graph (two trivalent vertices $d_5, d_7$ connected by three internally vertex-disjoint paths in $D(T)$). Leaves come only from $B_{\mathrm {out}}$ ($n = 3$ leaves) and from the three non-bridge edges of $O$ (the three triangle edges of the inner triangle).}}{5}{}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Partial tire dual $D(T)$ when the inner outerplanar graph $O$ has a bridge --- here a non-trivial edge cut connecting two disjoint triangles. $B_{\mathrm {out}}$ is a $4$-cycle on $\{0,1,2,3\}$ and $O$ is the barbell: triangle $\{4,5,6\}$ together with triangle $\{7,8,9\}$ joined by the bridge edge $6$--$7$ (removing the bridge disconnects $O$). Because both faces incident to the bridge are annular triangles, the bridge contributes an \emph {interior dual edge} (highlighted in red) rather than two leaves; consequently the interior dual subgraph is no longer the single $(n+m)$-cycle of Proposition\nonbreakingspace 1.8\hbox {}, but a theta graph: the two trivalent vertices $d_5, d_6$ (the bridge-incident annular faces) are joined by three internally vertex-disjoint paths in $D(T)$. Leaves come only from $B_{\mathrm {out}}$ ($n = 4$ leaves) and the six non-bridge edges of $O$ ($m_{\partial } = 6$ leaves, three for each triangle).}}{5}{}\protected@file@percent }
\newlabel{fig:partial-tire-dual-bridge}{{4}{5}}
\newlabel{prop:no-level-d-pinch}{{1.9}{5}}
\citation{bauerfeld-pds}
\newlabel{lem:tire-component}{{1.10}{6}}
\citation{bauerfeld-pds}
\newlabel{rem:tire-component-degenerate}{{1.11}{7}}
\newlabel{rem:tire-component-degenerate}{{1.11}{8}}
\newlabel{rem:tire-no-extra-hypotheses}{{1.12}{8}}
\newlabel{prop:edge-vertex-bijection}{{1.13}{8}}
\newlabel{rem:edge-vertex-corollary}{{1.14}{8}}
\bibcite{bauerfeld-pds}{1}
\newlabel{tocindent-1}{0pt}
\newlabel{tocindent0}{12.7778pt}
\newlabel{tocindent1}{17.77782pt}
\newlabel{tocindent2}{0pt}
\newlabel{tocindent3}{0pt}
\newlabel{rem:edge-vertex-corollary}{{1.14}{9}}
\@writefile{toc}{\contentsline {section}{\tocsection {}{}{References}}{9}{}\protected@file@percent }
\gdef \@abspage@last{9}
+23 -27
View File
@@ -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 20:43
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdflatex 2022.10.5) 25 MAY 2026 20:52
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
@@ -213,22 +213,18 @@ File: fig_partial_tire_dual.png Graphic file (type png)
<use fig_partial_tire_dual.png>
Package pdftex.def Info: fig_partial_tire_dual.png used on input line 225.
(pdftex.def) Requested size: 280.79956pt x 233.36552pt.
<fig_partial_tire_dual_bridge.png, id=31, 765.6103pt x 542.47668pt>
<fig_partial_tire_dual_bridge.png, id=31, 780.96768pt x 522.15076pt>
File: fig_partial_tire_dual_bridge.png Graphic file (type png)
<use fig_partial_tire_dual_bridge.png>
Package pdftex.def Info: fig_partial_tire_dual_bridge.png used on input line 2
40.
(pdftex.def) Requested size: 280.79956pt x 198.95839pt.
(pdftex.def) Requested size: 306.0022pt x 204.59406pt.
LaTeX Warning: `h' float specifier changed to `ht'.
[4 <./fig_partial_tire_dual.png>] [5 <./fig_partial_tire_dual_bridge.png>]
[6]
Underfull \vbox (badness 1043) has occurred while \output is active []
[7]
[8] [9] (./paper.aux) )
[6] [7] [8] [9] (./paper.aux) )
Here is how much of TeX's memory you used:
3028 strings out of 478268
42672 string characters out of 5846347
@@ -236,25 +232,25 @@ Here is how much of TeX's memory you used:
21073 multiletter control sequences out of 15000+600000
475666 words of font info for 53 fonts, out of 8000000 for 9000
1302 hyphenation exceptions out of 8191
69i,8n,76p,907b,316s stack positions out of 10000i,1000n,20000p,200000b,200000s
</usr/local/texlive/2022/texmf-dist/fonts/type1/public/a
msfonts/cm/cmbx10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/am
sfonts/cm/cmcsc10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/am
sfonts/cm/cmex10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/ams
fonts/cm/cmmi10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsf
onts/cm/cmmi5.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfon
ts/cm/cmmi7.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts
/cm/cmr10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/c
m/cmr5.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/c
mr7.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/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/amsfonts/cm/cmsy5.pf
b></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy7.pfb>
</usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmti10.pfb><
/usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmti8.pfb></u
sr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/symbols/msam10.pfb
>
Output written on paper.pdf (9 pages, 748857 bytes).
69i,8n,76p,1079b,316s stack positions out of 10000i,1000n,20000p,200000b,200000s
</usr/local/texlive/2022/texmf-dist/fonts/type1/
public/amsfonts/cm/cmbx10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/p
ublic/amsfonts/cm/cmcsc10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/p
ublic/amsfonts/cm/cmex10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/pu
blic/amsfonts/cm/cmmi10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/pub
lic/amsfonts/cm/cmmi5.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/publi
c/amsfonts/cm/cmmi7.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/
amsfonts/cm/cmr10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/am
sfonts/cm/cmr5.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfo
nts/cm/cmr7.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/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/amsfonts/cm/
cmsy5.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cm
sy7.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmti
10.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmti8
.pfb></usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/symbols/ms
am10.pfb>
Output written on paper.pdf (9 pages, 746924 bytes).
PDF statistics:
123 PDF objects out of 1000 (max. 8388607)
71 compressed objects within 1 object stream
Binary file not shown.
+11 -8
View File
@@ -237,20 +237,23 @@ Proposition~\ref{prop:partial-tire-dual-structure}.}
\begin{figure}[h]
\centering
\includegraphics[width=0.78\textwidth]{fig_partial_tire_dual_bridge.png}
\includegraphics[width=0.85\textwidth]{fig_partial_tire_dual_bridge.png}
\caption{Partial tire dual $D(T)$ when the inner outerplanar graph
$O$ has a bridge. Here $B_{\mathrm{out}}$ is a triangle on
$\{0,1,2\}$ and $O$ is a triangle $\{3,4,5\}$ with a pendant edge
$5$--$6$ (the bridge of $O$). Because both faces incident to the
$O$ has a bridge --- here a non-trivial edge cut connecting two
disjoint triangles. $B_{\mathrm{out}}$ is a $4$-cycle on
$\{0,1,2,3\}$ and $O$ is the barbell: triangle $\{4,5,6\}$ together
with triangle $\{7,8,9\}$ joined by the bridge edge $6$--$7$ (removing
the bridge disconnects $O$). Because both faces incident to the
bridge are annular triangles, the bridge contributes an
\emph{interior dual edge} (highlighted in red) rather than two
leaves; consequently the interior dual subgraph is no longer the
single $(n+m)$-cycle of
Proposition~\ref{prop:partial-tire-dual-structure}, but a theta
graph (two trivalent vertices $d_5, d_7$ connected by three
internally vertex-disjoint paths in $D(T)$). Leaves come only from
$B_{\mathrm{out}}$ ($n = 3$ leaves) and from the three non-bridge
edges of $O$ (the three triangle edges of the inner triangle).}
graph: the two trivalent vertices $d_5, d_6$ (the bridge-incident
annular faces) are joined by three internally vertex-disjoint paths
in $D(T)$. Leaves come only from $B_{\mathrm{out}}$ ($n = 4$ leaves)
and the six non-bridge edges of $O$ ($m_{\partial} = 6$ leaves,
three for each triangle).}
\label{fig:partial-tire-dual-bridge}
\end{figure}