Theorem: SimpleGraph.isNClique_map_iff
File: Mathlib/Combinatorics/SimpleGraph/Clique.lean

tactic: rw [isNClique_iff, isClique_map_finset_iff, or_and_right,
  or_iff_right (by rintro ⟨h', rfl⟩; exact h'.not_lt hn)]
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s : Finset α
a b c : α
inst✝ : DecidableEq β
hn : 1 < n
t : Finset β
f : α ↪ β
⊢ (SimpleGraph.map f G).IsNClique n t ↔ ∃ s, G.IsNClique n s ∧ map f s = t
state_after: α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s : Finset α
a b c : α
inst✝ : DecidableEq β
hn : 1 < n
t : Finset β
f : α ↪ β
⊢ (∃ s, G.IsClique ↑s ∧ map f s = t) ∧ t.card = n ↔ ∃ s, G.IsNClique n s ∧ map f s = t

tactic: constructor
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s : Finset α
a b c : α
inst✝ : DecidableEq β
hn : 1 < n
t : Finset β
f : α ↪ β
⊢ (∃ s, G.IsClique ↑s ∧ map f s = t) ∧ t.card = n ↔ ∃ s, G.IsNClique n s ∧ map f s = t
state_after: case mp
α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s : Finset α
a b c : α
inst✝ : DecidableEq β
hn : 1 < n
t : Finset β
f : α ↪ β
⊢ (∃ s, G.IsClique ↑s ∧ map f s = t) ∧ t.card = n → ∃ s, G.IsNClique n s ∧ map f s = t

case mpr
α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s : Finset α
a b c : α
inst✝ : DecidableEq β
hn : 1 < n
t : Finset β
f : α ↪ β
⊢ (∃ s, G.IsNClique n s ∧ map f s = t) → (∃ s, G.IsClique ↑s ∧ map f s = t) ∧ t.card = n

tactic: rintro ⟨s, hs, rfl⟩
state_before: case mpr
α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s : Finset α
a b c : α
inst✝ : DecidableEq β
hn : 1 < n
t : Finset β
f : α ↪ β
⊢ (∃ s, G.IsNClique n s ∧ map f s = t) → (∃ s, G.IsClique ↑s ∧ map f s = t) ∧ t.card = n
state_after: case mpr.intro.intro
α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s✝ : Finset α
a b c : α
inst✝ : DecidableEq β
hn : 1 < n
f : α ↪ β
s : Finset α
hs : G.IsNClique n s
⊢ (∃ s_1, G.IsClique ↑s_1 ∧ map f s_1 = map f s) ∧ (map f s).card = n

tactic: simp [hs.card_eq, hs.clique]
state_before: case mpr.intro.intro
α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s✝ : Finset α
a b c : α
inst✝ : DecidableEq β
hn : 1 < n
f : α ↪ β
s : Finset α
hs : G.IsNClique n s
⊢ (∃ s_1, G.IsClique ↑s_1 ∧ map f s_1 = map f s) ∧ (map f s).card = n
state_after: no goals

tactic: rintro ⟨h', rfl⟩
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s : Finset α
a b c : α
inst✝ : DecidableEq β
hn : 1 < n
t : Finset β
f : α ↪ β
⊢ ¬(t.card ≤ 1 ∧ t.card = n)
state_after: case intro
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s : Finset α
a b c : α
inst✝ : DecidableEq β
t : Finset β
f : α ↪ β
h' : t.card ≤ 1
hn : 1 < t.card
⊢ False

tactic: exact h'.not_lt hn
state_before: case intro
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s : Finset α
a b c : α
inst✝ : DecidableEq β
t : Finset β
f : α ↪ β
h' : t.card ≤ 1
hn : 1 < t.card
⊢ False
state_after: no goals

tactic: rintro ⟨⟨s, hs, rfl⟩, rfl⟩
state_before: case mp
α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s : Finset α
a b c : α
inst✝ : DecidableEq β
hn : 1 < n
t : Finset β
f : α ↪ β
⊢ (∃ s, G.IsClique ↑s ∧ map f s = t) ∧ t.card = n → ∃ s, G.IsNClique n s ∧ map f s = t
state_after: case mp.intro.intro.intro
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s✝ : Finset α
a b c : α
inst✝ : DecidableEq β
f : α ↪ β
s : Finset α
hs : G.IsClique ↑s
hn : 1 < (map f s).card
⊢ ∃ s_1, G.IsNClique (map f s).card s_1 ∧ map f s_1 = map f s

tactic: simp [isNClique_iff, hs]
state_before: case mp.intro.intro.intro
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s✝ : Finset α
a b c : α
inst✝ : DecidableEq β
f : α ↪ β
s : Finset α
hs : G.IsClique ↑s
hn : 1 < (map f s).card
⊢ ∃ s_1, G.IsNClique (map f s).card s_1 ∧ map f s_1 = map f s
state_after: no goals