Theorem: SimpleGraph.IsClique.card_le_chromaticNumber
File: Mathlib/Combinatorics/SimpleGraph/Coloring.lean

tactic: obtain (hc | hc) := eq_or_ne G.chromaticNumber ⊤
state_before: V : Type u
G : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
s : Finset V
h : G.IsClique ↑s
⊢ ↑s.card ≤ G.chromaticNumber
state_after: case inl
V : Type u
G : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
s : Finset V
h : G.IsClique ↑s
hc : G.chromaticNumber = ⊤
⊢ ↑s.card ≤ G.chromaticNumber

case inr
V : Type u
G : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
s : Finset V
h : G.IsClique ↑s
hc : G.chromaticNumber ≠ ⊤
⊢ ↑s.card ≤ G.chromaticNumber

tactic: rw [hc]
state_before: case inl
V : Type u
G : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
s : Finset V
h : G.IsClique ↑s
hc : G.chromaticNumber = ⊤
⊢ ↑s.card ≤ G.chromaticNumber
state_after: case inl
V : Type u
G : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
s : Finset V
h : G.IsClique ↑s
hc : G.chromaticNumber = ⊤
⊢ ↑s.card ≤ ⊤

tactic: exact le_top
state_before: case inl
V : Type u
G : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
s : Finset V
h : G.IsClique ↑s
hc : G.chromaticNumber = ⊤
⊢ ↑s.card ≤ ⊤
state_after: no goals

tactic: have hc' := hc
state_before: case inr
V : Type u
G : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
s : Finset V
h : G.IsClique ↑s
hc : G.chromaticNumber ≠ ⊤
⊢ ↑s.card ≤ G.chromaticNumber
state_after: case inr
V : Type u
G : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
s : Finset V
h : G.IsClique ↑s
hc hc' : G.chromaticNumber ≠ ⊤
⊢ ↑s.card ≤ G.chromaticNumber

tactic: rw [chromaticNumber_ne_top_iff_exists] at hc'
state_before: case inr
V : Type u
G : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
s : Finset V
h : G.IsClique ↑s
hc hc' : G.chromaticNumber ≠ ⊤
⊢ ↑s.card ≤ G.chromaticNumber
state_after: case inr
V : Type u
G : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
s : Finset V
h : G.IsClique ↑s
hc : G.chromaticNumber ≠ ⊤
hc' : ∃ n, G.Colorable n
⊢ ↑s.card ≤ G.chromaticNumber

tactic: obtain ⟨n, c⟩ := hc'
state_before: case inr
V : Type u
G : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
s : Finset V
h : G.IsClique ↑s
hc : G.chromaticNumber ≠ ⊤
hc' : ∃ n, G.Colorable n
⊢ ↑s.card ≤ G.chromaticNumber
state_after: case inr.intro
V : Type u
G : SimpleGraph V
n✝ : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
s : Finset V
h : G.IsClique ↑s
hc : G.chromaticNumber ≠ ⊤
n : ℕ
c : G.Colorable n
⊢ ↑s.card ≤ G.chromaticNumber

tactic: rw [← ENat.coe_toNat_eq_self] at hc
state_before: case inr.intro
V : Type u
G : SimpleGraph V
n✝ : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
s : Finset V
h : G.IsClique ↑s
hc : G.chromaticNumber ≠ ⊤
n : ℕ
c : G.Colorable n
⊢ ↑s.card ≤ G.chromaticNumber
state_after: case inr.intro
V : Type u
G : SimpleGraph V
n✝ : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
s : Finset V
h : G.IsClique ↑s
hc : ↑G.chromaticNumber.toNat = G.chromaticNumber
n : ℕ
c : G.Colorable n
⊢ ↑s.card ≤ G.chromaticNumber

tactic: rw [← hc, Nat.cast_le]
state_before: case inr.intro
V : Type u
G : SimpleGraph V
n✝ : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
s : Finset V
h : G.IsClique ↑s
hc : ↑G.chromaticNumber.toNat = G.chromaticNumber
n : ℕ
c : G.Colorable n
⊢ ↑s.card ≤ G.chromaticNumber
state_after: case inr.intro
V : Type u
G : SimpleGraph V
n✝ : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
s : Finset V
h : G.IsClique ↑s
hc : ↑G.chromaticNumber.toNat = G.chromaticNumber
n : ℕ
c : G.Colorable n
⊢ s.card ≤ G.chromaticNumber.toNat

tactic: exact h.card_le_of_colorable (colorable_chromaticNumber c)
state_before: case inr.intro
V : Type u
G : SimpleGraph V
n✝ : ℕ
α : Type u_1
β : Type u_2
C : G.Coloring α
s : Finset V
h : G.IsClique ↑s
hc : ↑G.chromaticNumber.toNat = G.chromaticNumber
n : ℕ
c : G.Colorable n
⊢ s.card ≤ G.chromaticNumber.toNat
state_after: no goals