Documentation

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

Constructing the degree-two regions #

Induced connected components partition the eligible vertices, with no black edges between distinct regions. Their boundary cuts are therefore pairwise disjoint. Degree at most two gives a spanning path and at most two boundary edges; degree exactly two makes the boundary size even.

theorem Algebraic.Cutwidth.Bisection.RedBlack.PathSystem.Internal.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
theorem Algebraic.Cutwidth.Bisection.RedBlack.PathSystem.Internal.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)
theorem Algebraic.Cutwidth.Bisection.RedBlack.PathSystem.Internal.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