Documentation

LeanPool.RemovalExtremalStability.TuranStability

Adapted from jtraverso/turan-stability (Palomar-registered source).

Proofs of the statements in Challenge.lean #

The proofs are in StabilityLib/: Furedi.lean (Füredi's greedy maximum-degree partition and Mathlib's Turán bound), CliqueCounting.lean (induction on the clique size with good neighbourhoods, generalising Mathlib's triangle counting lemma), CliqueRemoval.lean (Szemerédi's regularity lemma and Mathlib's reduced graph, generalising Mathlib's triangle removal lemma), Embedding.lean (greedy embedding) and StabilityGeneral.lean (the reduced graph of an L-free graph is K_{p+1}-free by the embedding lemma, and Füredi's theorem applied to it).

theorem TuranStability.card_edgeSet_add_le {W : Type u_2} [Finite W] (G : SimpleGraph W) {p : ℕ} (hp : 0 < p) (hG : G.CliqueFree (p + 1)) :

Füredi's partition inequality. Every K_{p+1}-free finite graph has a partition into p parts (the fibres of f) such that the number of edges of G plus the number of edges of G inside the parts is at most the number of edges of the complete p-partite graph on these parts.

theorem TuranStability.furedi {V : Type u_1} [Fintype V] (G : SimpleGraph V) {p t : ℕ} (hp : 0 < p) (hG : G.CliqueFree (p + 1)) (ht : SimpleGraph.turanNumber (Fintype.card V) p ≤ G.edgeSet.ncard + t) :
∃ H ≤ G, H.Colorable p ∧ G.edgeSet.ncard ≤ H.edgeSet.ncard + t

Füredi's theorem (2015). If G is a K_{p+1}-free graph on n vertices with at least turanNumber n p - t edges, then G has a p-colourable (i.e. p-partite) subgraph H with at least e(G) - t edges.

theorem TuranStability.exists_partition_symmDiff_le {V : Type u_1} [Fintype V] (G : SimpleGraph V) {p t : ℕ} (hp : 0 < p) (hG : G.CliqueFree (p + 1)) (ht : SimpleGraph.turanNumber (Fintype.card V) p ≤ G.edgeSet.ncard + t) :

Füredi's theorem, edit-distance form. Under the hypotheses of furedi, there is a partition into p parts with at most t edges of G inside the parts, and G differs from the complete p-partite graph on these parts in at most 3 t edges.

theorem TuranStability.erdos_simonovits_stability {p : ℕ} (hp : 0 < p) {ε : ℝ} (hε : 0 < ε) :
∃ (δ : ℝ), 0 < δ ∧ ∀ (W : Type) [inst : Fintype W] (G : SimpleGraph W), G.CliqueFree (p + 1) → (1 - 1 / ↑p) * ↑(Fintype.card W) ^ 2 / 2 - δ * ↑(Fintype.card W) ^ 2 ≤ ↑G.edgeSet.ncard → ∃ (f : W → Fin p), ↑(symmDiff G (SimpleGraph.comap f ⊤)).edgeSet.ncard ≤ ε * ↑(Fintype.card W) ^ 2

Erdős–Simonovits stability theorem for cliques (Erdős 1967, Simonovits 1968), in the form obtained from Füredi's theorem: for every ε > 0 there is δ > 0 such that every K_{p+1}-free graph on n vertices with at least (1 - 1/p) n² / 2 - δ n² edges differs from some complete p-partite graph on the same vertices in at most ε n² edges.

theorem TuranStability.card_transversalCliques_ge {α : Type u_1} (G : SimpleGraph α) [DecidableRel G.Adj] {r : ℕ} (s : Fin r → Finset α) {η d : ℝ} (hη : 0 < η) (hη₁ : η ≤ 1) (hd : 0 < d) (hηd : 2 * ↑r * η ≤ d ^ (r - 1)) (hs : ∀ (i j : Fin r), i ≠ j → ∀ A ⊆ s i, ∀ B ⊆ s j, η * ↑(s i).card ≤ ↑A.card → η * ↑(s j).card ≤ ↑B.card → d ≤ ↑(G.edgeDensity A B)) :
d ^ r.choose 2 / 2 ^ r * ∏ i : Fin r, ↑(s i).card ≤ ↑{x ∈ Fintype.piFinset s | ∀ (i j : Fin r), i ≠ j → G.Adj (x i) (x j)}.card

Clique counting lemma, robust-density form. If any two of the parts s i, s j (i ≠ j) have edge density at least d between all subsets of relative size at least η, η ≤ 1 and 2 r η ≤ d ^ (r - 1), then at least d ^ (r choose 2) / 2 ^ r of the tuples in ∏ i, s i are cliques. (Without η ≤ 1 the hypothesis on subsets would be vacuous.)

theorem TuranStability.card_transversalCliques_ge_of_isUniform {α : Type u_1} (G : SimpleGraph α) [DecidableRel G.Adj] {r : ℕ} (s : Fin r → Finset α) {ε d : ℝ} (hε : 0 < ε) (hd : 0 < d) (hεd : 2 * ↑r * ε ≤ d ^ (r - 1)) (hu : ∀ (i j : Fin r), i ≠ j → G.IsUniform ε (s i) (s j)) (hdens : ∀ (i j : Fin r), i ≠ j → d + ε ≤ ↑(G.edgeDensity (s i) (s j))) :
d ^ r.choose 2 / 2 ^ r * ∏ i : Fin r, ↑(s i).card ≤ ↑{x ∈ Fintype.piFinset s | ∀ (i j : Fin r), i ≠ j → G.Adj (x i) (x j)}.card

Clique counting lemma, uniform form. If every pair of distinct parts is ε-uniform with edge density at least d + ε, and 2 r ε ≤ d ^ (r - 1), then at least d ^ (r choose 2) / 2 ^ r of the tuples in ∏ i, s i are cliques.

theorem TuranStability.card_cliqueFinset_ge {α : Type u_1} (G : SimpleGraph α) [DecidableRel G.Adj] [Fintype α] [DecidableEq α] {r : ℕ} (s : Fin r → Finset α) {ε d : ℝ} (hε : 0 < ε) (hd : 0 < d) (hεd : 2 * ↑r * ε ≤ d ^ (r - 1)) (hdisj : ∀ (i j : Fin r), i ≠ j → Disjoint (s i) (s j)) (hu : ∀ (i j : Fin r), i ≠ j → G.IsUniform ε (s i) (s j)) (hdens : ∀ (i j : Fin r), i ≠ j → d + ε ≤ ↑(G.edgeDensity (s i) (s j))) :
d ^ r.choose 2 / 2 ^ r * ∏ i : Fin r, ↑(s i).card ≤ ↑(G.cliqueFinset r).card

Clique counting lemma. If s : Fin r → Finset α are pairwise disjoint sets of vertices, every two of them ε-uniform with edge density at least d + ε, and 2 r ε ≤ d ^ (r - 1), then G has at least d ^ (r choose 2) / 2 ^ r · ∏ i, #(s i) cliques of size r.

theorem TuranStability.le_card_cliqueFinset_of_deleteFar (r : ℕ) {ε : ℝ} (hε : 0 < ε) :
∃ (δ : ℝ), 0 < δ ∧ ∀ (α : Type) [inst : Fintype α] [inst_1 : DecidableEq α] (G : SimpleGraph α) [inst_2 : DecidableRel G.Adj], G.DeleteFar (fun (H : SimpleGraph α) => H.CliqueFree r) (ε * ↑(Fintype.card α ^ 2)) → δ * ↑(Fintype.card α) ^ r ≤ ↑(G.cliqueFinset r).card

Clique removal lemma, far form. For every r and ε > 0 there is δ > 0 such that a finite graph on n vertices that is ε n²-far from being K_r-free (in the sense of Mathlib's SimpleGraph.DeleteFar) has at least δ n^r cliques of size r.

theorem TuranStability.clique_removal (r : ℕ) {ε : ℝ} (hε : 0 < ε) :
∃ (δ : ℝ), 0 < δ ∧ ∀ (α : Type) [inst : Fintype α] [inst_1 : DecidableEq α] (G : SimpleGraph α) [inst_2 : DecidableRel G.Adj], ↑(G.cliqueFinset r).card < δ * ↑(Fintype.card α) ^ r → ∃ G' ≤ G, ∃ (x : DecidableRel G'.Adj), ↑G.edgeFinset.card - ↑G'.edgeFinset.card < ε * ↑(Fintype.card α ^ 2) ∧ G'.CliqueFree r

Clique removal lemma. For every r and ε > 0 there is δ > 0 such that every finite graph on n vertices with fewer than δ n^r cliques of size r has a K_r-free subgraph obtained by deleting fewer than ε n² edges.

theorem TuranStability.exists_embedding {α : Type u_1} (G : SimpleGraph α) [DecidableRel G.Adj] {β : Type u_2} [Fintype β] (L : SimpleGraph β) {r : ℕ} (c : β → Fin r) (hc : ∀ (x y : β), L.Adj x y → c x ≠ c y) (s : Fin r → Finset α) {η d : ℝ} (hη : 0 < η) (hη₁ : η ≤ 1) (hd : 0 < d) (hd₁ : d ≤ 1) (hηd : 2 * ↑(Fintype.card β) * η ≤ d ^ Fintype.card β) (hsize : ∀ (i : Fin r), 2 * ↑(Fintype.card β) ≤ d ^ Fintype.card β * ↑(s i).card) (hs : ∀ (i j : Fin r), i ≠ j → ∀ A ⊆ s i, ∀ B ⊆ s j, η * ↑(s i).card ≤ ↑A.card → η * ↑(s j).card ≤ ↑B.card → d ≤ ↑(G.edgeDensity A B)) :
∃ (f : β → α), Function.Injective f ∧ (∀ (x : β), f x ∈ s (c x)) ∧ ∀ (x y : β), L.Adj x y → G.Adj (f x) (f y)

Embedding lemma, robust-density form. Let L be a graph on a finite type β with k = card β vertices and a proper colouring c : β → Fin r. Suppose that for all colours i ≠ j, all subsets A ⊆ s i, B ⊆ s j with #A ≥ η #(s i) and #B ≥ η #(s j) have edge density at least d, where 0 < η ≤ 1, 0 < d ≤ 1, 2 k η ≤ d ^ k, and every part has at least 2 k / d ^ k vertices. Then there is an injective map f : β → α sending each x into s (c x) and edges of L to edges of G.

theorem TuranStability.exists_embedding_of_isUniform {α : Type u_1} (G : SimpleGraph α) [DecidableRel G.Adj] {β : Type u_2} [Fintype β] (L : SimpleGraph β) {r : ℕ} (c : β → Fin r) (hc : ∀ (x y : β), L.Adj x y → c x ≠ c y) (s : Fin r → Finset α) {ε d : ℝ} (hε : 0 < ε) (hd : 0 < d) (hd₁ : d ≤ 1) (hεd : 2 * ↑(Fintype.card β) * ε ≤ d ^ Fintype.card β) (hsize : ∀ (i : Fin r), 2 * ↑(Fintype.card β) ≤ d ^ Fintype.card β * ↑(s i).card) (hu : ∀ (i j : Fin r), i ≠ j → G.IsUniform ε (s i) (s j)) (hdens : ∀ (i j : Fin r), i ≠ j → d + ε ≤ ↑(G.edgeDensity (s i) (s j))) :
∃ (f : β → α), Function.Injective f ∧ (∀ (x : β), f x ∈ s (c x)) ∧ ∀ (x y : β), L.Adj x y → G.Adj (f x) (f y)

Embedding lemma, uniform form. Under the hypotheses of exists_embedding, with the robust density condition replaced by: every pair of distinct parts is ε-uniform with edge density at least d + ε, and 2 k ε ≤ d ^ k.

theorem TuranStability.isContained_of_isUniform {α : Type u_1} (G : SimpleGraph α) [DecidableRel G.Adj] {β : Type u_2} [Fintype β] (L : SimpleGraph β) {r : ℕ} (c : β → Fin r) (hc : ∀ (x y : β), L.Adj x y → c x ≠ c y) (s : Fin r → Finset α) {ε d : ℝ} (hε : 0 < ε) (hd : 0 < d) (hd₁ : d ≤ 1) (hεd : 2 * ↑(Fintype.card β) * ε ≤ d ^ Fintype.card β) (hsize : ∀ (i : Fin r), 2 * ↑(Fintype.card β) ≤ d ^ Fintype.card β * ↑(s i).card) (hu : ∀ (i j : Fin r), i ≠ j → G.IsUniform ε (s i) (s j)) (hdens : ∀ (i j : Fin r), i ≠ j → d + ε ≤ ↑(G.edgeDensity (s i) (s j))) :

Embedding lemma, containment form. Under the hypotheses of exists_embedding_of_isUniform, L is contained in G (L ⊑ G, Mathlib's SimpleGraph.IsContained).

theorem TuranStability.stability {β : Type} [Finite β] (L : SimpleGraph β) {p : ℕ} (hp : 0 < p) (hL : L.Colorable (p + 1)) {ε : ℝ} (hε : 0 < ε) :
∃ (δ : ℝ), 0 < δ ∧ ∃ (n₀ : ℕ), ∀ (W : Type) [inst : Fintype W] (G : SimpleGraph W), n₀ ≤ Fintype.card W → ¬L.IsContained G → (1 - 1 / ↑p) * ↑(Fintype.card W) ^ 2 / 2 - δ * ↑(Fintype.card W) ^ 2 ≤ ↑G.edgeSet.ncard → ∃ (f : W → Fin p), ↑(symmDiff G (SimpleGraph.comap f ⊤)).edgeSet.ncard ≤ ε * ↑(Fintype.card W) ^ 2

Erdős–Simonovits stability theorem. Let L be a finite graph that is (p + 1)-colourable. For every ε > 0 there are δ > 0 and n₀ such that every graph G on n ≥ n₀ vertices that does not contain L and has at least (1 - 1/p) n² / 2 - δ n² edges differs from some complete p-partite graph on the same vertices in at most ε n² edges.