The Bellenbaum--Diestel induction #
The forward half of the tree-width duality theorem: if no bramble of H has
order > k, then treewidth H < k, proved exactly as in Bellenbaum--Diestel,
Two short proofs concerning tree-decompositions, Theorem 5, except that the
appeal to Menger's theorem is replaced by the explicit separator rerootSep
below.
The induction #
A decomposition is ๐
-admissible when every bag of order > k fails to
cover ๐
. The statement proved by induction is
for every bramble
๐there is a๐-admissible decomposition ofH,
by induction on 2 ^ |V| โ |๐
.members|, i.e. downward on the number of members:
the induction hypothesis is applied to ๐
โช {C} for a component C of H โ X,
X a minimum cover of ๐
. Applying the result to the empty bramble โ every
set covers it โ forces every bag to have at most k vertices, hence
treewidth H โค k โ 1.
The Menger-free step #
Where the paper produces โ = |X| disjoint XโV_s paths from Menger's
theorem and reads |W_t| โค |V_t| off them, this development exhibits the single
set
rerootSep t = (bag t \ (C โช X)) โช (X \ (Z t \ bag t))
directly, proves that it separates X from bag s (rerootSep_separates,
using only Lemma 1), and concludes |rerootSep t| โฅ |X| from Lemma 4 plus
minimality of X โ the same two facts the paper already uses. The counting
then falls out (rerootBag_card_le). Mathlib has no Menger's theorem, no
vertex separators, and no treewidth, so this is what makes the campaign finite.
Admissibility #
A partial decomposition is ๐
-admissible when every bag with more than
k vertices fails to cover ๐
.
Equations
- Utilities.Treewidth.Bramble.Admissible k ๐ D = โ (t : D.Node), k < (D.bag t).card โ ยฌ๐ .IsHittingSet (D.bag t)
Instances For
The one-bag decomposition is admissible as soon as its bag is small.
The two-bag decomposition is admissible when one bag is small and the other fails to cover.
A join of admissible decompositions is admissible: its bags are exactly the bags of the two pieces.
Two small brambles #
The empty bramble. Every set covers it, which is what makes the base case of the induction say something.
Equations
- Utilities.Treewidth.Bramble.empty H = { members := โ , connected_mem := โฏ, touching := โฏ }
Instances For
A one-element vertex set induces a connected subgraph.
The one-member bramble {{v}}, of order 1. It is what rules out k = 0
when V is nonempty.
Equations
Instances For
Adding one member #
Adjoin a connected set touching every member.
Equations
Instances For
The rerooted decomposition ๐_s(H) #
The paper's {x โ X | t โ t_x T s}.
Equations
- Utilities.Treewidth.rerootZ D s X home t = {x โ X | t โ Utilities.Treewidth.Anc โฏ s (home x)}
Instances For
The paper's W_t := (V_t โฉ V(H)) โช {x โ X | t โ t_x T s}, with
V(H) = C โช X.
Equations
- Utilities.Treewidth.rerootBag D s X C home t = D.bag t โฉ (C โช X) โช Utilities.Treewidth.rerootZ D s X home t
Instances For
The separator that replaces Menger's theorem:
S t = (V_t \ (C โช X)) โช (X \ Y_t) with Y_t = Z_t \ V_t.
Equations
- Utilities.Treewidth.rerootSep D s X C home t = D.bag t \ (C โช X) โช X \ (Utilities.Treewidth.rerootZ D s X home t \ D.bag t)
Instances For
The Menger-free separation lemma (blueprint ยง4, Lemma ST-Sep). Screened
exhaustively over all configurations with |V| โค 4 and |T| โค 3 (680496 of
them) and randomly to |V| = 7 before being written down.
Discharge plan. Suppose a walk from a โ X to b โ bag s avoids
rerootSep t. Pass to a path P meeting X only in its first vertex x and
bag s only in its last vertex v (Walk.dropUntil at the last X-vertex,
then Walk.takeUntil at the first bag s-vertex; both preserve avoidance).
Then x โ rerootSep t forces x โ Z t and x โ bag t.
- If
t = s:v โ bag s = bag t, and avoidance putsv โ C โช X;v โ CcontradictshsC, andv โ Xforcesv = x, contradictingx โ bag t. - Otherwise
separates_of_mem_anc(withna := home x,nb := s, usinganc_rootfort โ Anc s s) puts a vertexy โ bag tonP; avoidance givesy โ C โช X;y โ Xforcesy = x, again impossible, soy โ C. ButPstarts outsideCand ends outsideC, so the successor of the lastC-vertex ofPis anH-neighbour ofCoutsideC, hence inXbyhC.closed, hence equal toxโ impossible, sincePis a path andxis its first vertex.
Lemma 2, Menger-free (blueprint ยง4, Lemma ST-Card).
Discharge plan: rerootSep_separates + Bramble.isHittingSet_of_separates
(Lemma 4) make rerootSep t a cover of ๐
, so hXmin gives
X.card โค (rerootSep t).card. The two pieces of rerootSep t are disjoint, so
this reads |Z t \ bag t| โค |bag t \ (C โช X)|; add
|bag t โฉ (C โช X)| to both sides.
๐_s(H): the same tree, the same isTree, only the bags change. This
is why the campaign never needs to re-root a tree.
Equations
- One or more equations did not get rendered due to their size.
Instances For
W_s = X.
The per-component step #
The paper's (โ), with the "there is nothing more to show" escape already
discharged by the ambient hno.
Discharge plan. Put ๐
' := ๐
โช {C}.
- If some
B โ ๐ .membersfails to touchC, thenY := C โช N(C)missesB, soPartialDecomposition.pairDecomp H X Yis admissible (Bramble.admissible_pairDecomp), andN(C) โ XmakesX โช Y = C โช X. - Otherwise
๐ 'is a bramble with strictly more members (C โ ๐ .membersbecauseXcovers๐andC โฉ X = โ), soIHgives a๐ '-admissible๐. Byhno,๐is not๐-admissible: somebag swithk < |bag s|covers๐. Since๐is๐ '-admissible,bag smissesC. ThenrerootDecompis the required decomposition:rerootBag_rootgives theXpart, and admissibility is the paper's last paragraph โ a bagW twithk < |W t|meetsC, soV tmeetsC, soV tmisses someB โ ๐(๐ '-admissibility of๐andk < |W t| โค |V t|byrerootBag_card_le); andW tmisses that sameB, since a vertex ofW t โฉ BoutsideV tlies inX, makingBa connected set meetingbag sandbag (home x)but notbag t, contradictingseparates_of_mem_anc.
Gluing over the components #
Fold PartialDecomposition.join over a closed set of vertices, one
component at a time.
Discharge plan: strong induction on R.card. R = โ
is
PartialDecomposition.single H X (Bramble.admissible_single). Otherwise pick
v โ R, put C := compOf H X R v (a component by isComponent_compOf, inside
R by compOf_subset), apply hstep to C and the induction hypothesis to
R \ C (closed by isClosedAway_sdiff, smaller by card_sdiff_compOf_lt), and
join them along X. hcap holds because C and R \ C are disjoint and
both miss X; hsep holds because hC.closed forbids H-edges from C to
R \ C.
The induction, and its consequence for the treewidth #
Theorem 5, forward direction. If no bramble of H has order > k,
then every bramble has an admissible decomposition.
Discharge plan: induction on n bounding Fintype.card (Finset V) โ ๐
.members.card. by_contra hno; take X a minimum cover of ๐
(Bramble.exists_isHittingSet_card_eq_order plus
Bramble.order_le_card_of_isHittingSet), note X.card = ๐
.order โค k by hk;
feed component_step into exists_admissible_of_closed with
R := Finset.univ \ X, and rewrite (Finset.univ \ X) โช X = Finset.univ.
Applying exists_admissible to the empty bramble bounds the treewidth.
Discharge plan: admissibility for Bramble.empty says no bag has more than k
vertices (every set covers the empty bramble, Bramble.isHittingSet_empty), so
width โค k โ 1; then treewidth_le_width on toTreeDecomposition.
The hard half of Seymour--Thomas duality: some bramble has order at
least treewidth H + 1.
Discharge plan: apply treewidth_le_of_forall_order_le with k := treewidth H.
If every bramble had order โค treewidth H we would get
treewidth H โค treewidth H โ 1, impossible unless treewidth H = 0; and
treewidth H = 0 is excluded because Bramble.singletonBramble H v has order
โฅ 1 (this is where Nonempty V is used).