Theorem: SimpleGraph.disjoint_sdiff_neighborFinset_image
File: Mathlib/Combinatorics/SimpleGraph/Operations.lean

tactic: rw [disjoint_iff_ne]
state_before: V : Type u_1
inst✝² : DecidableEq V
G : SimpleGraph V
s t : V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
⊢ Disjoint (G.edgeFinset \ G.incidenceFinset t) (image (fun x => s(x, t)) (G.neighborFinset s))
state_after: V : Type u_1
inst✝² : DecidableEq V
G : SimpleGraph V
s t : V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
⊢ ∀ a ∈ G.edgeFinset \ G.incidenceFinset t, ∀ b ∈ image (fun x => s(x, t)) (G.neighborFinset s), a ≠ b

tactic: intro e he
state_before: V : Type u_1
inst✝² : DecidableEq V
G : SimpleGraph V
s t : V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
⊢ ∀ a ∈ G.edgeFinset \ G.incidenceFinset t, ∀ b ∈ image (fun x => s(x, t)) (G.neighborFinset s), a ≠ b
state_after: V : Type u_1
inst✝² : DecidableEq V
G : SimpleGraph V
s t : V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
e : Sym2 V
he : e ∈ G.edgeFinset \ G.incidenceFinset t
⊢ ∀ b ∈ image (fun x => s(x, t)) (G.neighborFinset s), e ≠ b

tactic: have : t ∉ e := by
  rw [mem_sdiff, mem_incidenceFinset] at he
  obtain ⟨_, h⟩ := he
  contrapose! h
  simp_all [incidenceSet]
state_before: V : Type u_1
inst✝² : DecidableEq V
G : SimpleGraph V
s t : V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
e : Sym2 V
he : e ∈ G.edgeFinset \ G.incidenceFinset t
⊢ ∀ b ∈ image (fun x => s(x, t)) (G.neighborFinset s), e ≠ b
state_after: V : Type u_1
inst✝² : DecidableEq V
G : SimpleGraph V
s t : V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
e : Sym2 V
he : e ∈ G.edgeFinset \ G.incidenceFinset t
this : t ∉ e
⊢ ∀ b ∈ image (fun x => s(x, t)) (G.neighborFinset s), e ≠ b

tactic: aesop
state_before: V : Type u_1
inst✝² : DecidableEq V
G : SimpleGraph V
s t : V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
e : Sym2 V
he : e ∈ G.edgeFinset \ G.incidenceFinset t
this : t ∉ e
⊢ ∀ b ∈ image (fun x => s(x, t)) (G.neighborFinset s), e ≠ b
state_after: no goals

tactic: rw [mem_sdiff, mem_incidenceFinset] at he
state_before: V : Type u_1
inst✝² : DecidableEq V
G : SimpleGraph V
s t : V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
e : Sym2 V
he : e ∈ G.edgeFinset \ G.incidenceFinset t
⊢ t ∉ e
state_after: V : Type u_1
inst✝² : DecidableEq V
G : SimpleGraph V
s t : V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
e : Sym2 V
he : e ∈ G.edgeFinset ∧ e ∉ G.incidenceSet t
⊢ t ∉ e

tactic: obtain ⟨_, h⟩ := he
state_before: V : Type u_1
inst✝² : DecidableEq V
G : SimpleGraph V
s t : V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
e : Sym2 V
he : e ∈ G.edgeFinset ∧ e ∉ G.incidenceSet t
⊢ t ∉ e
state_after: case intro
V : Type u_1
inst✝² : DecidableEq V
G : SimpleGraph V
s t : V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
e : Sym2 V
left✝ : e ∈ G.edgeFinset
h : e ∉ G.incidenceSet t
⊢ t ∉ e

tactic: contrapose! h
state_before: case intro
V : Type u_1
inst✝² : DecidableEq V
G : SimpleGraph V
s t : V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
e : Sym2 V
left✝ : e ∈ G.edgeFinset
h : e ∉ G.incidenceSet t
⊢ t ∉ e
state_after: case intro
V : Type u_1
inst✝² : DecidableEq V
G : SimpleGraph V
s t : V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
e : Sym2 V
left✝ : e ∈ G.edgeFinset
h : t ∈ e
⊢ e ∈ G.incidenceSet t

tactic: simp_all [incidenceSet]
state_before: case intro
V : Type u_1
inst✝² : DecidableEq V
G : SimpleGraph V
s t : V
inst✝¹ : Fintype V
inst✝ : DecidableRel G.Adj
e : Sym2 V
left✝ : e ∈ G.edgeFinset
h : t ∈ e
⊢ e ∈ G.incidenceSet t
state_after: no goals