Annihilation number

Lax421170.AnnihilationNumber · concepts/Lax421170/AnnihilationNumber.lean · lax-421170

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

    Let GG be a finite simple graph with nn vertices and mm edges, and let d1≤d2≤⋯≤dnd_1 \le d_2 \le \dots \le d_n be its vertex degrees listed in nondecreasing order. The annihilation number a(G)a(G) is the largest integer kk with 0≤k≤n0 \le k \le n such that

    ∑i=1kdi≤m,\sum_{i=1}^{k} d_i \le m,

    that is, the largest kk for which the kk smallest degrees sum to at most the number of edges. The value k=0k = 0 always qualifies, so a(G)a(G) is well defined.

    The annihilation number was originally defined through a reduction process on the degree sequence; the definition above is an equivalent characterization and is the one in common use.

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

    Lean source view on GitHub

    1import Mathlib.Combinatorics.SimpleGraph.Finite
    2import Mathlib.Data.Multiset.Sort
    3import Mathlib.Order.Lattice.Nat
    4
    5/-!
    6---
    7title: Annihilation number
    8type: definition
    9---
    10Let GG be a finite simple graph with nn vertices and mm edges, and let
    11d1≤d2≤⋯≤dnd_1 \le d_2 \le \dots \le d_n be its vertex degrees listed in nondecreasing
    12order. The *annihilation number* a(G)a(G) is the largest integer kk with
    130≤k≤n0 \le k \le n such that
    14
    15∑i=1kdi≤m,\sum_{i=1}^{k} d_i \le m,
    16
    17that is, the largest kk for which the kk smallest degrees sum to at most the
    18number of edges. The value k=0k = 0 always qualifies, so a(G)a(G) is well defined.
    19
    20The annihilation number was originally defined through a reduction process on
    21the degree sequence; the definition above is an equivalent characterization and
    22is the one in common use.
    23-/
    24
    25namespace Lax421170.AnnihilationNumber
    26
    27/-- The degrees of the vertices of `G`, listed in nondecreasing order. -/
    28def degreeSequence {V : Type*} [Fintype V] (G : SimpleGraph V) [DecidableRel G.Adj] :
    29 List ℕ :=
    30 (Finset.univ.val.map fun v => G.degree v).sort (· ≤ ·)
    31
    32/-- The largest `k ≤ n` such that the first `k` entries of the nondecreasing degree
    33sequence, i.e. the `k` smallest degrees, sum to at most the number of edges. -/
    34noncomputable def annihilationNumber {V : Type*} [Fintype V] (G : SimpleGraph V)
    35 [DecidableRel G.Adj] : ℕ :=
    36 sSup {k : ℕ | k ≤ Fintype.card V ∧ ((degreeSequence G).take k).sum ≤ G.edgeFinset.card}
    37
    38end Lax421170.AnnihilationNumber
    39

    Discussion

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

    Loading discussion…