Documentation

Complexitylib.Algebraic.LowerBound.Cutwidth.PathDecomposition.Bisection.RedBlack.PathSystem

Constructing and isolating the thin-path system #

Given eligible vertices of black degree at most two, take their induced connected components. Each has a spanning simple path; different regions have disjoint vertices and disjoint boundary cuts. Count their actual red attachments to black components of size at most M to define thin regions.

Unless a positive set of size at most 8 M + 1 already exists, a thin region has one or two attachments, at most 2 M vertices, and a nonempty boundary. If eligible vertices lie in black components larger than M, choosing one small attachment per thin region constructs a restoration family with region-plus-attachment size at most 3 M. Cycle selection then isolates at most the original cycle rank many regions and leaves no cycle through any thin region. The existing family restoration theorem applies with L = 3 M.

This constructs the thin-path system in Monien and Preis's red/black proof. Full-cut deletion preserves reachability between vertices outside the isolated regions. Contracting the pieces between all remaining region boundaries produces a forest. exists_core_forest additionally suppresses the thin-region vertices, retaining the restoration and cycle-rank bounds and exact original reachability on the remaining core pieces. With eligible vertices of degree exactly two, exists_counted_core_forest also proves that the number of core edges plus the number of shaded paths is exactly the original number of thin paths. All three constructions retain the stronger budget reserving cycle rank for small cyclic components. The marks on small attachments total exactly two per shaded path, so doubly marked components fit within the same budget. Endpoint marks total two per shaded path as well, lie outside the eligible set, and record the exact degree loss there. Restoration charges only marks on the witness. The weighted-tree reorganization and the final density contradiction of this route are not formalized; RedBlack.Clusters proves the red/black lemma by another route.

theorem Algebraic.Cutwidth.Bisection.RedBlack.PathSystem.mem_region {V : Type} (B : SimpleGraph V) (U : Finset V) (C : (SimpleGraph.induce {v : V | v ∈ U} B).ConnectedComponent) {v : V} :
v ∈ region B U C ↔ ∃ (h : v ∈ U), ⟨v, h⟩ ∈ C.supp

Membership in a region is membership in the corresponding induced component.

Every vertex of a region is eligible.

Every induced region is nonempty and connected in the ambient graph.

The regions cover exactly the eligible vertices.

Distinct regions have no common vertices.

theorem Algebraic.Cutwidth.Bisection.RedBlack.PathSystem.eq_of_adj {V : Type} (B : SimpleGraph V) (U : Finset V) {C D : (SimpleGraph.induce {v : V | v ∈ U} B).ConnectedComponent} {v w : V} (hv : v ∈ region B U C) (hw : w ∈ region B U D) (adjacent : B.Adj v w) :
C = D

A black edge between eligible regions forces them to coincide.

Distinct regions have disjoint black boundaries.

theorem Algebraic.Cutwidth.Bisection.RedBlack.PathSystem.exists_distinct_boundary_edges {V : Type} (B : SimpleGraph V) (U : Finset V) [Fintype V] (components : Finset (SimpleGraph.induce {v : V | v ∈ U} B).ConnectedComponent) (boundary : ∀ C ∈ components, (B.cutFinset (region B U C)).Nonempty) :
∃ (chosen : ↥components → Sym2 V), Function.Injective chosen ∧ ∀ (C : ↥components), chosen C ∈ B.cutFinset (region B U ↑C)

Nonclosed eligible regions admit distinct choices of boundary edges.

theorem Algebraic.Cutwidth.Bisection.RedBlack.PathSystem.exists_spanning_path_in_region {V : Type} (B : SimpleGraph V) [Fintype V] {P : Finset V} (connected : (SimpleGraph.induce {v : V | v ∈ P} B).Connected) (degree : ∀ v ∈ P, B.degree v ≤ 2) :
∃ (u : V) (v : V) (p : B.Walk u v), p.IsPath ∧ p.support.toFinset = P

A connected vertex set of ambient degree at most two has a spanning simple path.

theorem Algebraic.Cutwidth.Bisection.RedBlack.PathSystem.region_spanning_path {V : Type} (B : SimpleGraph V) (U : Finset V) [Fintype V] (degree : ∀ v ∈ U, B.degree v ≤ 2) (C : (SimpleGraph.induce {v : V | v ∈ U} B).ConnectedComponent) :
∃ (u : V) (v : V) (p : B.Walk u v), p.IsPath ∧ p.support.toFinset = region B U C

Eligible degree-two regions come with spanning paths in the original graph.

theorem Algebraic.Cutwidth.Bisection.RedBlack.PathSystem.card_cut_le_two {V : Type} (B : SimpleGraph V) (U : Finset V) [Fintype V] (degree : ∀ v ∈ U, B.degree v ≤ 2) (C : (SimpleGraph.induce {v : V | v ∈ U} B).ConnectedComponent) :
(B.cutFinset (region B U C)).card ≤ 2

Each eligible region has at most two boundary edges.

theorem Algebraic.Cutwidth.Bisection.RedBlack.PathSystem.card_cut_eq_zero_or_two {V : Type} (B : SimpleGraph V) (U : Finset V) [Fintype V] (degree : ∀ v ∈ U, B.degree v = 2) (C : (SimpleGraph.induce {v : V | v ∈ U} B).ConnectedComponent) :
(B.cutFinset (region B U C)).card = 0 ∨ (B.cutFinset (region B U C)).card = 2

With ambient degree exactly two, a region is closed or has exactly two boundary edges.

theorem Algebraic.Cutwidth.Bisection.RedBlack.PathSystem.region_isTree {V : Type} (B : SimpleGraph V) (U : Finset V) [Fintype V] (degree : ∀ v ∈ U, B.degree v ≤ 2) (C : (SimpleGraph.induce {v : V | v ∈ U} B).ConnectedComponent) (boundary : (B.cutFinset (region B U C)).Nonempty) :

A nonclosed eligible region is a tree, so its spanning path has no extra cycle edges.

theorem Algebraic.Cutwidth.Bisection.RedBlack.PathSystem.exists_positive_of_thin_region {V E : Type} (B : SimpleGraph V) [Fintype V] [Fintype E] (R : Multigraph V E) (P : Finset V) (edges : Finset E) (A : E → Finset V) (M : ℕ) (connected : (SimpleGraph.induce {v : V | v ∈ P} B).Connected) (degree : ∀ v ∈ P, B.degree v ≤ 2) (many : 3 ≤ edges.card) (thin : P.card ≤ M * edges.card) (closed : ∀ e ∈ edges, B.cutFinset (A e) = ∅) (small : ∀ e ∈ edges, (A e).card ≤ M) (attached : ∀ e ∈ edges, R.fst e ∈ P ∧ R.snd e ∈ A e ∨ R.snd e ∈ P ∧ R.fst e ∈ A e) :
∃ (X : Finset V), X.card ≤ 8 * M + 1 ∧ Positive B R X

The thin-path witness from a connected region and an unordered finite set of at least three red attachments. A spanning path and attachment order are constructed.

The cardinality test defining thin components.

theorem Algebraic.Cutwidth.Bisection.RedBlack.PathSystem.thin_component_bounds {V E : Type} (B : SimpleGraph V) (U : Finset V) [Fintype V] [Fintype E] (R : Multigraph V E) (M : ℕ) (degree : ∀ v ∈ U, B.degree v ≤ 2) (noPositive : ¬∃ (X : Finset V), X.card ≤ 8 * M + 1 ∧ Positive B R X) {C : (SimpleGraph.induce {v : V | v ∈ U} B).ConnectedComponent} (thin : C ∈ thinComponents B R U M) :
(attachmentEdges B R (region B U C) M).Nonempty ∧ (attachmentEdges B R (region B U C) M).card ≤ 2 ∧ (region B U C).card ≤ 2 * M ∧ (B.cutFinset (region B U C)).Nonempty

Excluding bounded positive sets bounds every thin region and its number of attachments, and forces its black boundary to be nonempty.

theorem Algebraic.Cutwidth.Bisection.RedBlack.PathSystem.card_cut_thin_eq_two {V E : Type} (B : SimpleGraph V) (U : Finset V) [Fintype V] [Fintype E] (R : Multigraph V E) (M : ℕ) (degree : ∀ v ∈ U, B.degree v = 2) (noPositive : ¬∃ (X : Finset V), X.card ≤ 8 * M + 1 ∧ Positive B R X) {C : (SimpleGraph.induce {v : V | v ∈ U} B).ConnectedComponent} (thin : C ∈ thinComponents B R U M) :
(B.cutFinset (region B U C)).card = 2

With ambient degree exactly two and no bounded positive witness, every thin region has exactly two boundary edges.

theorem Algebraic.Cutwidth.Bisection.RedBlack.PathSystem.exists_isolated_family {V E : Type} (B : SimpleGraph V) (U : Finset V) [Fintype V] [Fintype E] (R : Multigraph V E) (M : ℕ) (degree : ∀ v ∈ U, B.degree v ≤ 2) (large : ∀ v ∈ U, M < Fintype.card ↥(B.connectedComponentMk v)) (noPositive : ¬∃ (X : Finset V), X.card ≤ 8 * M + 1 ∧ Positive B R X) :
∃ (F : RestorationFamily B R ↥(thinComponents B R U M)) (chosen : ↥(thinComponents B R U M) → Sym2 V) (shaded : Finset ↥(thinComponents B R U M)), (∀ (C : ↥(thinComponents B R U M)), F.region C = region B U ↑C) ∧ (∀ (C : ↥(thinComponents B R U M)), (F.region C ∪ F.attachment C).card ≤ 3 * M) ∧ (∀ (C : ↥(thinComponents B R U M)), chosen C ∈ B.cutFinset (F.region C)) ∧ Function.Injective chosen ∧ shaded.card + Fintype.card V ≤ B.edgeFinset.card + Nat.card B.ConnectedComponent ∧ SmallCycleBudget B M shaded.card ∧ (B.deleteEdges ↑(Finset.image chosen shaded)).Reachable = B.Reachable ∧ (∀ (u v : V), (∀ C ∈ shaded, u ∉ F.region C) → (∀ C ∈ shaded, v ∉ F.region C) → ((F.restrict shaded).deletedGraph.Reachable u v ↔ B.Reachable u v)) ∧ (BridgeQuotient.ofRegions (F.restrict shaded).deletedGraph F.region).IsAcyclic ∧ ∀ (u : V) (p : (F.restrict shaded).deletedGraph.Walk u u), p.IsCycle → ∀ (C : ↥(thinComponents B R U M)), ∀ v ∈ F.region C, v ∉ p.support

Construct the thin-path restoration family and select regions to isolate. At most the original cycle rank many regions are selected. Their designated single-edge deletions preserve reachability; deleting their full cuts leaves no cycle meeting any thin region and preserves reachability among outside vertices. The region-boundary quotient is a forest. Each region and its chosen attachment together have at most 3 M vertices. Small cyclic components reserve additional units of the original cycle rank.

theorem Algebraic.Cutwidth.Bisection.RedBlack.PathSystem.exists_core_forest {V E : Type} (B : SimpleGraph V) (U : Finset V) [Fintype V] [Fintype E] (R : Multigraph V E) (M : ℕ) (degree : ∀ v ∈ U, B.degree v ≤ 2) (large : ∀ v ∈ U, M < Fintype.card ↥(B.connectedComponentMk v)) (noPositive : ¬∃ (X : Finset V), X.card ≤ 8 * M + 1 ∧ Positive B R X) :
∃ (F : RestorationFamily B R ↥(thinComponents B R U M)) (shaded : Finset ↥(thinComponents B R U M)), have H := (F.restrict shaded).deletedGraph; ∃ (f : ↥(thinComponents B R U M) ↪ (H.deleteEdges (⋃ (i : ↥(thinComponents B R U M)), ↑(H.cutFinset (F.region i)))).ConnectedComponent), (∀ (C : ↥(thinComponents B R U M)), F.region C = region B U ↑C) ∧ (∀ (C : ↥(thinComponents B R U M)), (F.region C ∪ F.attachment C).card ≤ 3 * M) ∧ shaded.card + Fintype.card V ≤ B.edgeFinset.card + Nat.card B.ConnectedComponent ∧ SmallCycleBudget B M shaded.card ∧ (∀ (C : ↥(thinComponents B R U M)), (f C).supp.toFinset = F.region C) ∧ (PathSuppression.coreGraph H F.region f).IsAcyclic ∧ (PathSuppression.coreGraph H F.region f).edgeSet.ncard = {C : ↥(thinComponents B R U M) | (H.cutFinset (F.region C)).card = 2}.card ∧ ∀ (u v : { C : (H.deleteEdges (⋃ (i : ↥(thinComponents B R U M)), ↑(H.cutFinset (F.region i)))).ConnectedComponent // C ∉ Finset.image (⇑f) Finset.univ }), (PathSuppression.coreGraph H F.region f).Reachable u v ↔ B.Reachable (Quot.out ↑u) (Quot.out ↑v)

Construct the forest on the core pieces by isolating selected thin paths, identifying all thin regions in the boundary quotient, and suppressing those vertices. Core reachability agrees with the original black graph, and the restoration size and cycle-rank bounds, including the reserve for small cyclic components, are retained. Core edges count the regions whose remaining boundary has size two.

theorem Algebraic.Cutwidth.Bisection.RedBlack.PathSystem.exists_counted_core_forest {V E : Type} (B : SimpleGraph V) (U : Finset V) [Fintype V] [Fintype E] (R : Multigraph V E) (M : ℕ) (degree : ∀ v ∈ U, B.degree v = 2) (large : ∀ v ∈ U, M < Fintype.card ↥(B.connectedComponentMk v)) (noPositive : ¬∃ (X : Finset V), X.card ≤ 8 * M + 1 ∧ Positive B R X) :
∃ (F : RestorationFamily B R ↥(thinComponents B R U M)) (shaded : Finset ↥(thinComponents B R U M)), have H := (F.restrict shaded).deletedGraph; ∃ (f : ↥(thinComponents B R U M) ↪ (H.deleteEdges (⋃ (i : ↥(thinComponents B R U M)), ↑(H.cutFinset (F.region i)))).ConnectedComponent), (∀ (C : ↥(thinComponents B R U M)), F.region C = region B U ↑C) ∧ (∀ (C : ↥(thinComponents B R U M)), (F.region C ∪ F.attachment C).card ≤ 3 * M) ∧ shaded.card + Fintype.card V ≤ B.edgeFinset.card + Nat.card B.ConnectedComponent ∧ SmallCycleBudget B M shaded.card ∧ (∀ (C : ↥(thinComponents B R U M)), (f C).supp.toFinset = F.region C) ∧ (PathSuppression.coreGraph H F.region f).IsAcyclic ∧ (PathSuppression.coreGraph H F.region f).edgeSet.ncard + shaded.card = (thinComponents B R U M).card ∧ ∀ (u v : { C : (H.deleteEdges (⋃ (i : ↥(thinComponents B R U M)), ↑(H.cutFinset (F.region i)))).ConnectedComponent // C ∉ Finset.image (⇑f) Finset.univ }), (PathSuppression.coreGraph H F.region f).Reachable u v ↔ B.Reachable (Quot.out ↑u) (Quot.out ↑v)

With eligible vertices of degree exactly two, every unshaded thin path contributes one core edge. Thus the number of core edges plus the number of shaded paths is exactly the original number of thin paths.