Theorem: SimpleGraph.IsTuranMaximal.nonempty_iso_turanGraph
File: Mathlib/Combinatorics/SimpleGraph/Turan.lean

tactic: obtain ⟨zm, zp⟩ := h.isEquipartition.exists_partPreservingEquiv
state_before: V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
⊢ Nonempty (G ≃g turanGraph (Fintype.card V) r)
state_after: case intro
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
⊢ Nonempty (G ≃g turanGraph (Fintype.card V) r)

tactic: use (Equiv.subtypeUnivEquiv mem_univ).symm.trans zm
state_before: case intro
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
⊢ Nonempty (G ≃g turanGraph (Fintype.card V) r)
state_after: case map_rel_iff'
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
⊢ ∀ {a b : V},
    (turanGraph (Fintype.card V) r).Adj (((Equiv.subtypeUnivEquiv ⋯).symm.trans zm) a)
        (((Equiv.subtypeUnivEquiv ⋯).symm.trans zm) b) ↔
      G.Adj a b

tactic: intro a b
state_before: case map_rel_iff'
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
⊢ ∀ {a b : V},
    (turanGraph (Fintype.card V) r).Adj (((Equiv.subtypeUnivEquiv ⋯).symm.trans zm) a)
        (((Equiv.subtypeUnivEquiv ⋯).symm.trans zm) b) ↔
      G.Adj a b
state_after: case map_rel_iff'
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
a b : V
⊢ (turanGraph (Fintype.card V) r).Adj (((Equiv.subtypeUnivEquiv ⋯).symm.trans zm) a)
      (((Equiv.subtypeUnivEquiv ⋯).symm.trans zm) b) ↔
    G.Adj a b

tactic: simp_rw [turanGraph, Equiv.trans_apply, Equiv.subtypeUnivEquiv_symm_apply]
state_before: case map_rel_iff'
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
a b : V
⊢ (turanGraph (Fintype.card V) r).Adj (((Equiv.subtypeUnivEquiv ⋯).symm.trans zm) a)
      (((Equiv.subtypeUnivEquiv ⋯).symm.trans zm) b) ↔
    G.Adj a b
state_after: case map_rel_iff'
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
a b : V
⊢ ↑(zm ⟨a, ⋯⟩) % r ≠ ↑(zm ⟨b, ⋯⟩) % r ↔ G.Adj a b

tactic: have := zp ⟨a, mem_univ a⟩ ⟨b, mem_univ b⟩
state_before: case map_rel_iff'
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
a b : V
⊢ ↑(zm ⟨a, ⋯⟩) % r ≠ ↑(zm ⟨b, ⋯⟩) % r ↔ G.Adj a b
state_after: case map_rel_iff'
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
a b : V
this :
  h.finpartition.part ↑⟨a, ⋯⟩ = h.finpartition.part ↑⟨b, ⋯⟩ ↔
    ↑(zm ⟨a, ⋯⟩) % h.finpartition.parts.card = ↑(zm ⟨b, ⋯⟩) % h.finpartition.parts.card
⊢ ↑(zm ⟨a, ⋯⟩) % r ≠ ↑(zm ⟨b, ⋯⟩) % r ↔ G.Adj a b

tactic: rw [← h.not_adj_iff_part_eq] at this
state_before: case map_rel_iff'
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
a b : V
this :
  h.finpartition.part ↑⟨a, ⋯⟩ = h.finpartition.part ↑⟨b, ⋯⟩ ↔
    ↑(zm ⟨a, ⋯⟩) % h.finpartition.parts.card = ↑(zm ⟨b, ⋯⟩) % h.finpartition.parts.card
⊢ ↑(zm ⟨a, ⋯⟩) % r ≠ ↑(zm ⟨b, ⋯⟩) % r ↔ G.Adj a b
state_after: case map_rel_iff'
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
a b : V
this : ¬G.Adj ↑⟨a, ⋯⟩ ↑⟨b, ⋯⟩ ↔ ↑(zm ⟨a, ⋯⟩) % h.finpartition.parts.card = ↑(zm ⟨b, ⋯⟩) % h.finpartition.parts.card
⊢ ↑(zm ⟨a, ⋯⟩) % r ≠ ↑(zm ⟨b, ⋯⟩) % r ↔ G.Adj a b

tactic: rw [← not_iff_not, not_ne_iff, this, card_parts]
state_before: case map_rel_iff'
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
a b : V
this : ¬G.Adj ↑⟨a, ⋯⟩ ↑⟨b, ⋯⟩ ↔ ↑(zm ⟨a, ⋯⟩) % h.finpartition.parts.card = ↑(zm ⟨b, ⋯⟩) % h.finpartition.parts.card
⊢ ↑(zm ⟨a, ⋯⟩) % r ≠ ↑(zm ⟨b, ⋯⟩) % r ↔ G.Adj a b
state_after: case map_rel_iff'
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
a b : V
this : ¬G.Adj ↑⟨a, ⋯⟩ ↑⟨b, ⋯⟩ ↔ ↑(zm ⟨a, ⋯⟩) % h.finpartition.parts.card = ↑(zm ⟨b, ⋯⟩) % h.finpartition.parts.card
⊢ ↑(zm ⟨a, ⋯⟩) % r = ↑(zm ⟨b, ⋯⟩) % r ↔ ↑(zm ⟨a, ⋯⟩) % min (Fintype.card V) r = ↑(zm ⟨b, ⋯⟩) % min (Fintype.card V) r

tactic: rcases le_or_lt r (Fintype.card V) with c | c
state_before: case map_rel_iff'
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
a b : V
this : ¬G.Adj ↑⟨a, ⋯⟩ ↑⟨b, ⋯⟩ ↔ ↑(zm ⟨a, ⋯⟩) % h.finpartition.parts.card = ↑(zm ⟨b, ⋯⟩) % h.finpartition.parts.card
⊢ ↑(zm ⟨a, ⋯⟩) % r = ↑(zm ⟨b, ⋯⟩) % r ↔ ↑(zm ⟨a, ⋯⟩) % min (Fintype.card V) r = ↑(zm ⟨b, ⋯⟩) % min (Fintype.card V) r
state_after: case map_rel_iff'.inl
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
a b : V
this : ¬G.Adj ↑⟨a, ⋯⟩ ↑⟨b, ⋯⟩ ↔ ↑(zm ⟨a, ⋯⟩) % h.finpartition.parts.card = ↑(zm ⟨b, ⋯⟩) % h.finpartition.parts.card
c : r ≤ Fintype.card V
⊢ ↑(zm ⟨a, ⋯⟩) % r = ↑(zm ⟨b, ⋯⟩) % r ↔ ↑(zm ⟨a, ⋯⟩) % min (Fintype.card V) r = ↑(zm ⟨b, ⋯⟩) % min (Fintype.card V) r

case map_rel_iff'.inr
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
a b : V
this : ¬G.Adj ↑⟨a, ⋯⟩ ↑⟨b, ⋯⟩ ↔ ↑(zm ⟨a, ⋯⟩) % h.finpartition.parts.card = ↑(zm ⟨b, ⋯⟩) % h.finpartition.parts.card
c : Fintype.card V < r
⊢ ↑(zm ⟨a, ⋯⟩) % r = ↑(zm ⟨b, ⋯⟩) % r ↔ ↑(zm ⟨a, ⋯⟩) % min (Fintype.card V) r = ↑(zm ⟨b, ⋯⟩) % min (Fintype.card V) r

tactic: rw [min_eq_right c]
state_before: case map_rel_iff'.inl
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
a b : V
this : ¬G.Adj ↑⟨a, ⋯⟩ ↑⟨b, ⋯⟩ ↔ ↑(zm ⟨a, ⋯⟩) % h.finpartition.parts.card = ↑(zm ⟨b, ⋯⟩) % h.finpartition.parts.card
c : r ≤ Fintype.card V
⊢ ↑(zm ⟨a, ⋯⟩) % r = ↑(zm ⟨b, ⋯⟩) % r ↔ ↑(zm ⟨a, ⋯⟩) % min (Fintype.card V) r = ↑(zm ⟨b, ⋯⟩) % min (Fintype.card V) r
state_after: case map_rel_iff'.inl
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
a b : V
this : ¬G.Adj ↑⟨a, ⋯⟩ ↑⟨b, ⋯⟩ ↔ ↑(zm ⟨a, ⋯⟩) % h.finpartition.parts.card = ↑(zm ⟨b, ⋯⟩) % h.finpartition.parts.card
c : r ≤ Fintype.card V
⊢ ↑(zm ⟨a, ⋯⟩) % r = ↑(zm ⟨b, ⋯⟩) % r ↔ ↑(zm ⟨a, ⋯⟩) % r = ↑(zm ⟨b, ⋯⟩) % r

tactic: rfl
state_before: case map_rel_iff'.inl
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
a b : V
this : ¬G.Adj ↑⟨a, ⋯⟩ ↑⟨b, ⋯⟩ ↔ ↑(zm ⟨a, ⋯⟩) % h.finpartition.parts.card = ↑(zm ⟨b, ⋯⟩) % h.finpartition.parts.card
c : r ≤ Fintype.card V
⊢ ↑(zm ⟨a, ⋯⟩) % r = ↑(zm ⟨b, ⋯⟩) % r ↔ ↑(zm ⟨a, ⋯⟩) % r = ↑(zm ⟨b, ⋯⟩) % r
state_after: no goals

tactic: have lc : ∀ x, zm ⟨x, _⟩ < Fintype.card V := fun x ↦ (zm ⟨x, mem_univ x⟩).2
state_before: case map_rel_iff'.inr
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
a b : V
this : ¬G.Adj ↑⟨a, ⋯⟩ ↑⟨b, ⋯⟩ ↔ ↑(zm ⟨a, ⋯⟩) % h.finpartition.parts.card = ↑(zm ⟨b, ⋯⟩) % h.finpartition.parts.card
c : Fintype.card V < r
⊢ ↑(zm ⟨a, ⋯⟩) % r = ↑(zm ⟨b, ⋯⟩) % r ↔ ↑(zm ⟨a, ⋯⟩) % min (Fintype.card V) r = ↑(zm ⟨b, ⋯⟩) % min (Fintype.card V) r
state_after: case map_rel_iff'.inr
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
a b : V
this : ¬G.Adj ↑⟨a, ⋯⟩ ↑⟨b, ⋯⟩ ↔ ↑(zm ⟨a, ⋯⟩) % h.finpartition.parts.card = ↑(zm ⟨b, ⋯⟩) % h.finpartition.parts.card
c : Fintype.card V < r
lc : ∀ (x : V), ↑(zm ⟨x, ⋯⟩) < Fintype.card V
⊢ ↑(zm ⟨a, ⋯⟩) % r = ↑(zm ⟨b, ⋯⟩) % r ↔ ↑(zm ⟨a, ⋯⟩) % min (Fintype.card V) r = ↑(zm ⟨b, ⋯⟩) % min (Fintype.card V) r

tactic: rw [min_eq_left c.le, Nat.mod_eq_of_lt (lc a), Nat.mod_eq_of_lt (lc b),
  ← Nat.mod_eq_of_lt ((lc a).trans c), ← Nat.mod_eq_of_lt ((lc b).trans c)]
state_before: case map_rel_iff'.inr
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
a b : V
this : ¬G.Adj ↑⟨a, ⋯⟩ ↑⟨b, ⋯⟩ ↔ ↑(zm ⟨a, ⋯⟩) % h.finpartition.parts.card = ↑(zm ⟨b, ⋯⟩) % h.finpartition.parts.card
c : Fintype.card V < r
lc : ∀ (x : V), ↑(zm ⟨x, ⋯⟩) < Fintype.card V
⊢ ↑(zm ⟨a, ⋯⟩) % r = ↑(zm ⟨b, ⋯⟩) % r ↔ ↑(zm ⟨a, ⋯⟩) % min (Fintype.card V) r = ↑(zm ⟨b, ⋯⟩) % min (Fintype.card V) r
state_after: case map_rel_iff'.inr
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
a b : V
this : ¬G.Adj ↑⟨a, ⋯⟩ ↑⟨b, ⋯⟩ ↔ ↑(zm ⟨a, ⋯⟩) % h.finpartition.parts.card = ↑(zm ⟨b, ⋯⟩) % h.finpartition.parts.card
c : Fintype.card V < r
lc : ∀ (x : V), ↑(zm ⟨x, ⋯⟩) < Fintype.card V
⊢ ↑(zm ⟨a, ⋯⟩) % r = ↑(zm ⟨b, ⋯⟩) % r ↔ ↑(zm ⟨a, ⋯⟩) % r = ↑(zm ⟨b, ⋯⟩) % r

tactic: rfl
state_before: case map_rel_iff'.inr
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
zm : { x // x ∈ univ } ≃ Fin univ.card
zp :
  ∀ (a b : { x // x ∈ univ }),
    h.finpartition.part ↑a = h.finpartition.part ↑b ↔
      ↑(zm a) % h.finpartition.parts.card = ↑(zm b) % h.finpartition.parts.card
a b : V
this : ¬G.Adj ↑⟨a, ⋯⟩ ↑⟨b, ⋯⟩ ↔ ↑(zm ⟨a, ⋯⟩) % h.finpartition.parts.card = ↑(zm ⟨b, ⋯⟩) % h.finpartition.parts.card
c : Fintype.card V < r
lc : ∀ (x : V), ↑(zm ⟨x, ⋯⟩) < Fintype.card V
⊢ ↑(zm ⟨a, ⋯⟩) % r = ↑(zm ⟨b, ⋯⟩) % r ↔ ↑(zm ⟨a, ⋯⟩) % r = ↑(zm ⟨b, ⋯⟩) % r
state_after: no goals