Annihilation number
Lax421170.AnnihilationNumber · concepts/Lax421170/AnnihilationNumber.lean · lax-421170
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Definition
Let be a finite simple graph with vertices and edges, and let be its vertex degrees listed in nondecreasing order. The annihilation number is the largest integer with such that
that is, the largest for which the smallest degrees sum to at most the number of edges. The value always qualifies, so 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
Lean source view on GitHub
| 1 | import Mathlib.Combinatorics.SimpleGraph.Finite |
| 2 | import Mathlib.Data.Multiset.Sort |
| 3 | import Mathlib.Order.Lattice.Nat |
| 4 | |
| 5 | /-! |
| 6 | --- |
| 7 | title: Annihilation number |
| 8 | type: definition |
| 9 | --- |
| 10 | Let be a finite simple graph with vertices and edges, and let |
| 11 | be its vertex degrees listed in nondecreasing |
| 12 | order. The *annihilation number* is the largest integer with |
| 13 | such that |
| 14 | |
| 15 | |
| 16 | |
| 17 | that is, the largest for which the smallest degrees sum to at most the |
| 18 | number of edges. The value always qualifies, so is well defined. |
| 19 | |
| 20 | The annihilation number was originally defined through a reduction process on |
| 21 | the degree sequence; the definition above is an equivalent characterization and |
| 22 | is the one in common use. |
| 23 | -/ |
| 24 | |
| 25 | namespace Lax421170.AnnihilationNumber |
| 26 | |
| 27 | /-- The degrees of the vertices of `G`, listed in nondecreasing order. -/ |
| 28 | def 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 |
| 33 | sequence, i.e. the `k` smallest degrees, sum to at most the number of edges. -/ |
| 34 | noncomputable 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 | |
| 38 | end Lax421170.AnnihilationNumber |
| 39 |
Builds on
none
Used by
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments