Skip to content

Commit faf6897

Browse files
Impl card_edgeFinset_eq_extremalNumber_top_iff_nonempty_iso_turanGraph
1 parent fe1931e commit faf6897

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

  • Mathlib/Combinatorics/SimpleGraph/Extremal

Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,36 @@ theorem isTuranMaximal_iff_nonempty_iso_turanGraph (hr : 0 < r) :
297297
G.IsTuranMaximal r ↔ Nonempty (G ≃g turanGraph (card V) r) :=
298298
fun h ↦ h.nonempty_iso_turanGraph, fun h ↦ isTuranMaximal_of_iso h.some hr⟩
299299

300+
variable {α : Type*} [Fintype α] [Nontrivial α]
301+
302+
lemma isExtremal_top_free_iff_isTuranMaximal :
303+
G.IsExtremal (⊤ : SimpleGraph α).Free ↔ G.IsTuranMaximal (card α - 1) := by
304+
simp_rw [IsTuranMaximal, IsExtremal,
305+
Nat.sub_one_add_one Fintype.card_ne_zero, cliqueFree_iff_top_free]
306+
307+
lemma isExtremal_top_free_turanGraph :
308+
(turanGraph n (card α - 1)).IsExtremal (⊤ : SimpleGraph α).Free := by
309+
rw [isExtremal_top_free_iff_isTuranMaximal]
310+
exact isTuranMaximal_turanGraph (Nat.sub_pos_iff_lt.mpr Fintype.one_lt_card)
311+
312+
/-- The extremal numbers of `⊤` are equal to the number of edges in `turanGraph`. -/
313+
theorem extremalNumber_top :
314+
extremalNumber n (⊤ : SimpleGraph α) = #(turanGraph n (card α - 1)).edgeFinset := by
315+
conv =>
316+
enter [1, 1]
317+
rw [← Fintype.card_fin n]
318+
exact (card_edgeFinset_of_isExtremal_free isExtremal_top_free_turanGraph).symm
319+
320+
/-- The `turanGraph` is, up to isomorphism, the unique extremal graph forbidding `⊤`.
321+
322+
This is **Turán's theorem** restated in terms of the extremal numbers of `⊤`.
323+
See `SimpleGraph.isTuranMaximal_iff_nonempty_iso_turanGraph`. -/
324+
theorem card_edgeFinset_eq_extremalNumber_top_iff_nonempty_iso_turanGraph :
325+
(⊤ : SimpleGraph α).Free G ∧ #G.edgeFinset = extremalNumber (card V) (⊤ : SimpleGraph α)
326+
↔ Nonempty (G ≃g turanGraph (card V) (card α - 1)) := by
327+
rw [← isTuranMaximal_iff_nonempty_iso_turanGraph (Nat.sub_pos_iff_lt.mpr one_lt_card),
328+
← isExtremal_top_free_iff_isTuranMaximal, isExtremal_free_iff]
329+
300330
/-! ### Number of edges in the Turán graph -/
301331

302332
private lemma sum_ne_add_mod_eq_sub_one {c : ℕ} :

0 commit comments

Comments
 (0)