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

tactic: rw [isClique_iff]
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
⊢ G.IsClique s ↔ induce s G = ⊤
state_after: α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
⊢ s.Pairwise G.Adj ↔ induce s G = ⊤

tactic: constructor
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
⊢ s.Pairwise G.Adj ↔ induce s G = ⊤
state_after: case mp
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
⊢ s.Pairwise G.Adj → induce s G = ⊤

case mpr
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
⊢ induce s G = ⊤ → s.Pairwise G.Adj

tactic: intro h
state_before: case mp
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
⊢ s.Pairwise G.Adj → induce s G = ⊤
state_after: case mp
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
h : s.Pairwise G.Adj
⊢ induce s G = ⊤

tactic: ext ⟨v, hv⟩ ⟨w, hw⟩
state_before: case mp
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
h : s.Pairwise G.Adj
⊢ induce s G = ⊤
state_after: case mp.Adj.h.mk.h.mk.a
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
h : s.Pairwise G.Adj
v : α
hv : v ∈ s
w : α
hw : w ∈ s
⊢ (induce s G).Adj ⟨v, hv⟩ ⟨w, hw⟩ ↔ ⊤.Adj ⟨v, hv⟩ ⟨w, hw⟩

tactic: simp only [comap_adj, Subtype.coe_mk, top_adj, Ne, Subtype.mk_eq_mk]
state_before: case mp.Adj.h.mk.h.mk.a
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
h : s.Pairwise G.Adj
v : α
hv : v ∈ s
w : α
hw : w ∈ s
⊢ (induce s G).Adj ⟨v, hv⟩ ⟨w, hw⟩ ↔ ⊤.Adj ⟨v, hv⟩ ⟨w, hw⟩
state_after: case mp.Adj.h.mk.h.mk.a
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
h : s.Pairwise G.Adj
v : α
hv : v ∈ s
w : α
hw : w ∈ s
⊢ G.Adj ((Embedding.subtype fun x => x ∈ s) ⟨v, hv⟩) ((Embedding.subtype fun x => x ∈ s) ⟨w, hw⟩) ↔ ¬v = w

tactic: exact ⟨Adj.ne, h hv hw⟩
state_before: case mp.Adj.h.mk.h.mk.a
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
h : s.Pairwise G.Adj
v : α
hv : v ∈ s
w : α
hw : w ∈ s
⊢ G.Adj ((Embedding.subtype fun x => x ∈ s) ⟨v, hv⟩) ((Embedding.subtype fun x => x ∈ s) ⟨w, hw⟩) ↔ ¬v = w
state_after: no goals

tactic: intro h v hv w hw hne
state_before: case mpr
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
⊢ induce s G = ⊤ → s.Pairwise G.Adj
state_after: case mpr
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
h : induce s G = ⊤
v : α
hv : v ∈ s
w : α
hw : w ∈ s
hne : v ≠ w
⊢ G.Adj v w

tactic: have h2 : (G.induce s).Adj ⟨v, hv⟩ ⟨w, hw⟩ = _ := rfl
state_before: case mpr
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
h : induce s G = ⊤
v : α
hv : v ∈ s
w : α
hw : w ∈ s
hne : v ≠ w
⊢ G.Adj v w
state_after: case mpr
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
h : induce s G = ⊤
v : α
hv : v ∈ s
w : α
hw : w ∈ s
hne : v ≠ w
h2 : (induce s G).Adj ⟨v, hv⟩ ⟨w, hw⟩ = (induce s G).Adj ⟨v, hv⟩ ⟨w, hw⟩
⊢ G.Adj v w

tactic: conv_lhs at h2 => rw [h]
state_before: case mpr
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
h : induce s G = ⊤
v : α
hv : v ∈ s
w : α
hw : w ∈ s
hne : v ≠ w
h2 : (induce s G).Adj ⟨v, hv⟩ ⟨w, hw⟩ = (induce s G).Adj ⟨v, hv⟩ ⟨w, hw⟩
⊢ G.Adj v w
state_after: case mpr
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
h : induce s G = ⊤
v : α
hv : v ∈ s
w : α
hw : w ∈ s
hne : v ≠ w
h2 : ⊤.Adj ⟨v, hv⟩ ⟨w, hw⟩ = (induce s G).Adj ⟨v, hv⟩ ⟨w, hw⟩
⊢ G.Adj v w

tactic: simp only [top_adj, ne_eq, Subtype.mk.injEq, eq_iff_iff] at h2
state_before: case mpr
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
h : induce s G = ⊤
v : α
hv : v ∈ s
w : α
hw : w ∈ s
hne : v ≠ w
h2 : ⊤.Adj ⟨v, hv⟩ ⟨w, hw⟩ = (induce s G).Adj ⟨v, hv⟩ ⟨w, hw⟩
⊢ G.Adj v w
state_after: case mpr
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
h : induce s G = ⊤
v : α
hv : v ∈ s
w : α
hw : w ∈ s
hne : v ≠ w
h2 : ¬v = w ↔ (induce s G).Adj ⟨v, hv⟩ ⟨w, hw⟩
⊢ G.Adj v w

tactic: exact h2.1 hne
state_before: case mpr
α : Type u_1
β : Type u_2
G H : SimpleGraph α
s t : Set α
h : induce s G = ⊤
v : α
hv : v ∈ s
w : α
hw : w ∈ s
hne : v ≠ w
h2 : ¬v = w ↔ (induce s G).Adj ⟨v, hv⟩ ⟨w, hw⟩
⊢ G.Adj v w
state_after: no goals