@@ -124,7 +124,7 @@ end Defs
124
124
125
125
namespace IsTuranMaximal
126
126
127
- variable {s t u : V} [DecidableEq V]
127
+ variable {s t u : V}
128
128
129
129
/-- In a Turán-maximal graph, non-adjacent vertices have the same degree. -/
130
130
lemma degree_eq_of_not_adj (h : G.IsTuranMaximal r) (hn : ¬G.Adj s t) :
@@ -186,15 +186,15 @@ instance : DecidableRel h.setoid.r :=
186
186
/-- The finpartition derived from `h.setoid`. -/
187
187
def finpartition [DecidableEq V] : Finpartition (univ : Finset V) := Finpartition.ofSetoid h.setoid
188
188
189
- lemma not_adj_iff_part_eq :
189
+ lemma not_adj_iff_part_eq [DecidableEq V] :
190
190
¬G.Adj s t ↔ h.finpartition.part s = h.finpartition.part t := by
191
191
change h.setoid.r s t ↔ _
192
192
rw [← Finpartition.mem_part_ofSetoid_iff_rel]
193
193
let fp := h.finpartition
194
194
change t ∈ fp.part s ↔ fp.part s = fp.part t
195
195
rw [fp.mem_part_iff_part_eq_part (mem_univ t) (mem_univ s), eq_comm]
196
196
197
- lemma degree_eq_card_sub_part_card :
197
+ lemma degree_eq_card_sub_part_card [DecidableEq V] :
198
198
G.degree s = Fintype.card V - (h.finpartition.part s).card :=
199
199
calc
200
200
_ = (univ.filter (G.Adj s)).card := by
@@ -207,7 +207,7 @@ lemma degree_eq_card_sub_part_card :
207
207
simp [setoid]
208
208
209
209
/-- The parts of a Turán-maximal graph form an equipartition. -/
210
- theorem isEquipartition : h.finpartition.IsEquipartition := by
210
+ theorem isEquipartition [DecidableEq V] : h.finpartition.IsEquipartition := by
211
211
set fp := h.finpartition
212
212
by_contra hn
213
213
rw [Finpartition.not_isEquipartition] at hn
@@ -227,7 +227,7 @@ theorem isEquipartition : h.finpartition.IsEquipartition := by
227
227
have : large.card ≤ Fintype.card V := by simpa using card_le_card large.subset_univ
228
228
omega
229
229
230
- lemma card_parts_le : h.finpartition.parts.card ≤ r := by
230
+ lemma card_parts_le [DecidableEq V] : h.finpartition.parts.card ≤ r := by
231
231
by_contra! l
232
232
obtain ⟨z, -, hz⟩ := h.finpartition.exists_subset_part_bijOn
233
233
have ncf : ¬G.CliqueFree z.card := by
@@ -240,7 +240,7 @@ lemma card_parts_le : h.finpartition.parts.card ≤ r := by
240
240
/-- There are `min n r` parts in a graph on `n` vertices satisfying `G.IsTuranMaximal r`.
241
241
`min` handles the `n < r` case, when `G` is complete but still `r + 1`-cliquefree
242
242
for having insufficiently many vertices. -/
243
- theorem card_parts : h.finpartition.parts.card = min (Fintype.card V) r := by
243
+ theorem card_parts [DecidableEq V] : h.finpartition.parts.card = min (Fintype.card V) r := by
244
244
set fp := h.finpartition
245
245
apply le_antisymm (le_min fp.card_parts_le_card h.card_parts_le)
246
246
by_contra! l
@@ -280,8 +280,6 @@ theorem nonempty_iso_turanGraph :
280
280
281
281
end IsTuranMaximal
282
282
283
- variable [DecidableEq V]
284
-
285
283
/-- **Turán's theorem** , reverse direction.
286
284
287
285
Any graph isomorphic to `turanGraph n r` is itself Turán-maximal if `0 < r`. -/
@@ -293,7 +291,7 @@ theorem isTuranMaximal_of_iso (f : G ≃g turanGraph n r) (hr : 0 < r) : G.IsTur
293
291
fun H _ cf ↦ (f.symm.comp g).card_edgeFinset_eq ▸ j.2 H cf
294
292
295
293
/-- Turán-maximality with `0 < r` transfers across graph isomorphisms. -/
296
- theorem IsTuranMaximal.iso {W : Type *} [DecidableEq W] [ Fintype W] {H : SimpleGraph W}
294
+ theorem IsTuranMaximal.iso {W : Type *} [Fintype W] {H : SimpleGraph W}
297
295
[DecidableRel H.Adj] (h : G.IsTuranMaximal r) (f : G ≃g H) (hr : 0 < r) : H.IsTuranMaximal r :=
298
296
isTuranMaximal_of_iso (h.nonempty_iso_turanGraph.some.comp f.symm) hr
299
297
0 commit comments