Bounded-degree spanning-tree relaxation

Lax17.SpanningTreeRounding · concepts/Lax17/SpanningTreeRounding.lean · lax-17

definition

Loading review…

Sign in with ORCID

Community review

Flags

Each flag is tied to a public ORCID identity and explains why this concept may be incorrect.

No flags have been submitted.

    Community review

    Flag this concept

    State precisely what appears incorrect. This explanation will be public under your ORCID name.

    No source line selected.

    Natural Language Statement

    Definition

    A feasible bounded-degree spanning-tree point assigns nonnegative rational weights to the edges, has total weight ∣V∣−1|V|-1, satisfies every forest inequality, and has fractional degree at most BB at every vertex. This is the unweighted relaxation used by the Singh–Lau rounding theorem.

    Concept map
    2 concepts; 1 descendant hidden
    100%
    Proven claimDefinitionThis conceptRelated conceptA → B: B builds on A

    Lean source view on GitHub

    1import Mathlib.Data.Rat.Defs
    2import Lax17.Degree
    3
    4/-!
    5---
    6title: Bounded-degree spanning-tree relaxation
    7type: definition
    8---
    9A feasible bounded-degree spanning-tree point assigns nonnegative rational
    10weights to the edges, has total weight \(|V|-1\), satisfies every forest
    11inequality, and has fractional degree at most \(B\) at every vertex. This is
    12the unweighted relaxation used by the Singh--Lau rounding theorem.
    13-/
    14
    15namespace Lax17.SpanningTreeRounding
    16
    17universe u
    18
    19open Finset
    20
    21/-- Both endpoints of an unordered pair lie in `S`. -/
    22def PairInside {V : Type u} [DecidableEq V]
    23 (S : Finset V) (e : Sym2 V) : Prop :=
    24 e.toFinset ⊆ S
    25
    26/-- The finite edge set of `G`. -/
    27noncomputable def edges {V : Type u} [Fintype V]
    28 (G : SimpleGraph V) : Finset (Sym2 V) :=
    29 G.edgeSet.toFinite.toFinset
    30
    31/-- The edges of `G` with both endpoints in `S`. -/
    32noncomputable def internalEdges {V : Type u} [Fintype V] [DecidableEq V]
    33 (G : SimpleGraph V) (S : Finset V) : Finset (Sym2 V) :=
    34 @Finset.filter (Sym2 V) (PairInside S) (Classical.decPred _) (edges G)
    35
    36/-- The edges of `G` incident with `v`. -/
    37noncomputable def incidentEdges {V : Type u} [Fintype V] [DecidableEq V]
    38 (G : SimpleGraph V) (v : V) : Finset (Sym2 V) :=
    39 (edges G).filter fun e => v ∈ e
    40
    41/-- A feasible point of the bounded-degree spanning-tree relaxation. -/
    42structure FeasiblePoint {V : Type u} [Fintype V] [DecidableEq V]
    43 (G : SimpleGraph V) (B : ℕ) where
    44 weight : Sym2 V → ℚ
    45 nonnegative : ∀ e : Sym2 V, e ∈ edges G → 0 ≤ weight e
    46 total :
    47 (edges G).sum weight = (Fintype.card V - 1 : ℕ)
    48 forest :
    49 ∀ S : Finset V, S ≠ Finset.univ →
    50 (internalEdges G S).sum weight ≤ (S.card - 1 : ℕ)
    51 degree :
    52 ∀ v : V, (incidentEdges G v).sum weight ≤ B
    53
    54end Lax17.SpanningTreeRounding
    55
    Builds on
    Used by
    From Mathlib

    Discussion

    Ask a question or add context. Endorsements and structured flags are kept in the review panel above.

    Loading discussion…