Exact cut changes in the bisection argument #
Flipping a set toggles exactly the edges in its cut. The resulting integer identities make successive moves telescope, including moves that restore balance after improving the cut.
theorem
Algebraic.Cutwidth.Bisection.Internal.helpfulness_eq_sub
{W : Type}
[Fintype W]
(H : SimpleGraph W)
(S X : Finset W)
:
theorem
Algebraic.Cutwidth.Bisection.Internal.helpfulness_eq_sub_sdiff
{W : Type}
[Fintype W]
(H : SimpleGraph W)
{S X : Finset W}
(hX : X ⊆ S)
:
theorem
Algebraic.Cutwidth.Bisection.Internal.helpfulness_eq_sub_union
{W : Type}
[Fintype W]
(H : SimpleGraph W)
{S X : Finset W}
(hX : Disjoint S X)
:
theorem
Algebraic.Cutwidth.Bisection.Internal.helpfulness_add
{W : Type}
[Fintype W]
(H : SimpleGraph W)
(S X Y : Finset W)
:
theorem
Algebraic.Cutwidth.Bisection.Internal.helpfulness_compl
{W : Type}
[Fintype W]
(H : SimpleGraph W)
(S X : Finset W)
:
theorem
Algebraic.Cutwidth.Bisection.Internal.cutFinset_singleton
{W : Type}
[Fintype W]
(H : SimpleGraph W)
(v : W)
:
theorem
Algebraic.Cutwidth.Bisection.Internal.helpfulness_singleton
{W : Type}
[Fintype W]
(H : SimpleGraph W)
{S : Finset W}
{v : W}
(hv : v ∈ S)
:
theorem
Algebraic.Cutwidth.Bisection.Internal.one_le_helpfulness_singleton
{W : Type}
[Fintype W]
(H : SimpleGraph W)
{S : Finset W}
{v : W}
(hv : v ∈ S)
(degree : H.degree v ≤ 3)
(outside : 2 ≤ (H.neighborFinset v \ S).card)
:
theorem
Algebraic.Cutwidth.Bisection.Internal.card_cut_inter_eq_sum_neighbors
{W : Type}
[Fintype W]
(H : SimpleGraph W)
{S X : Finset W}
(hX : X ⊆ S)
:
theorem
Algebraic.Cutwidth.Bisection.Internal.card_cutFinset_eq_sum_neighbors
{W : Type}
[Fintype W]
(H : SimpleGraph W)
(X : Finset W)
:
theorem
Algebraic.Cutwidth.Bisection.Internal.degree_sum_cut
{W : Type}
[Fintype W]
(H : SimpleGraph W)
(X : Finset W)
:
theorem
Algebraic.Cutwidth.Bisection.Internal.abs_helpfulness_le_card_cut
{W : Type}
[Fintype W]
(H : SimpleGraph W)
(S X : Finset W)
:
theorem
Algebraic.Cutwidth.Bisection.Internal.abs_helpfulness_le_mul_card
{W : Type}
[Fintype W]
(H : SimpleGraph W)
(S X : Finset W)
{d : ℕ}
(degree : ∀ v ∈ X, H.degree v ≤ d)
:
theorem
Algebraic.Cutwidth.Bisection.Internal.helpfulness_eq_degree_sum
{W : Type}
[Fintype W]
(H : SimpleGraph W)
{S X : Finset W}
(hX : X ⊆ S)
:
helpfulness H S X = 2 * ∑ v ∈ X, ↑(H.neighborFinset v \ S).card + 2 * ↑(SimpleGraph.induce {w : W | w ∈ X} H).edgeFinset.card - ∑ v ∈ X, ↑(H.degree v)
theorem
Algebraic.Cutwidth.Bisection.Internal.card_sub_two_le_helpfulness
{W : Type}
[Fintype W]
(H : SimpleGraph W)
{S X : Finset W}
(hX : X ⊆ S)
(connected : (SimpleGraph.induce {w : W | w ∈ X} H).Connected)
(degree : ∀ v ∈ X, H.degree v ≤ 3)
(boundary : ∀ v ∈ X, ∃ w ∉ S, H.Adj v w)
: