Theorem: SimpleGraph.ComponentCompl.hom_eq_iff_not_disjoint
File: Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean

tactic: rw [Set.not_disjoint_iff]
state_before: V : Type u
G : SimpleGraph V
K L L' M : Set V
C : G.ComponentCompl L
h : K ⊆ L
D : G.ComponentCompl K
⊢ hom h C = D ↔ ¬Disjoint ↑C ↑D
state_after: V : Type u
G : SimpleGraph V
K L L' M : Set V
C : G.ComponentCompl L
h : K ⊆ L
D : G.ComponentCompl K
⊢ hom h C = D ↔ ∃ x ∈ ↑C, x ∈ ↑D

tactic: constructor
state_before: V : Type u
G : SimpleGraph V
K L L' M : Set V
C : G.ComponentCompl L
h : K ⊆ L
D : G.ComponentCompl K
⊢ hom h C = D ↔ ∃ x ∈ ↑C, x ∈ ↑D
state_after: case mp
V : Type u
G : SimpleGraph V
K L L' M : Set V
C : G.ComponentCompl L
h : K ⊆ L
D : G.ComponentCompl K
⊢ hom h C = D → ∃ x ∈ ↑C, x ∈ ↑D

case mpr
V : Type u
G : SimpleGraph V
K L L' M : Set V
C : G.ComponentCompl L
h : K ⊆ L
D : G.ComponentCompl K
⊢ (∃ x ∈ ↑C, x ∈ ↑D) → hom h C = D

tactic: rintro rfl
state_before: case mp
V : Type u
G : SimpleGraph V
K L L' M : Set V
C : G.ComponentCompl L
h : K ⊆ L
D : G.ComponentCompl K
⊢ hom h C = D → ∃ x ∈ ↑C, x ∈ ↑D
state_after: case mp
V : Type u
G : SimpleGraph V
K L L' M : Set V
C : G.ComponentCompl L
h : K ⊆ L
⊢ ∃ x ∈ ↑C, x ∈ ↑(hom h C)

tactic: refine C.ind fun x xnL => ?_
state_before: case mp
V : Type u
G : SimpleGraph V
K L L' M : Set V
C : G.ComponentCompl L
h : K ⊆ L
⊢ ∃ x ∈ ↑C, x ∈ ↑(hom h C)
state_after: case mp
V : Type u
G : SimpleGraph V
K L L' M : Set V
C : G.ComponentCompl L
h : K ⊆ L
x : V
xnL : x ∉ L
⊢ ∃ x_1 ∈ ↑(G.componentComplMk xnL), x_1 ∈ ↑(hom h (G.componentComplMk xnL))

tactic: exact ⟨x, ⟨xnL, rfl⟩, ⟨fun xK => xnL (h xK), rfl⟩⟩
state_before: case mp
V : Type u
G : SimpleGraph V
K L L' M : Set V
C : G.ComponentCompl L
h : K ⊆ L
x : V
xnL : x ∉ L
⊢ ∃ x_1 ∈ ↑(G.componentComplMk xnL), x_1 ∈ ↑(hom h (G.componentComplMk xnL))
state_after: no goals

tactic: refine C.ind fun x xnL => ?_
state_before: case mpr
V : Type u
G : SimpleGraph V
K L L' M : Set V
C : G.ComponentCompl L
h : K ⊆ L
D : G.ComponentCompl K
⊢ (∃ x ∈ ↑C, x ∈ ↑D) → hom h C = D
state_after: case mpr
V : Type u
G : SimpleGraph V
K L L' M : Set V
C : G.ComponentCompl L
h : K ⊆ L
D : G.ComponentCompl K
x : V
xnL : x ∉ L
⊢ (∃ x_1 ∈ ↑(G.componentComplMk xnL), x_1 ∈ ↑D) → hom h (G.componentComplMk xnL) = D

tactic: rintro ⟨x, ⟨_, e₁⟩, _, rfl⟩
state_before: case mpr
V : Type u
G : SimpleGraph V
K L L' M : Set V
C : G.ComponentCompl L
h : K ⊆ L
D : G.ComponentCompl K
x : V
xnL : x ∉ L
⊢ (∃ x_1 ∈ ↑(G.componentComplMk xnL), x_1 ∈ ↑D) → hom h (G.componentComplMk xnL) = D
state_after: case mpr.intro.intro.intro.intro
V : Type u
G : SimpleGraph V
K L L' M : Set V
C : G.ComponentCompl L
h : K ⊆ L
x✝ : V
xnL : x✝ ∉ L
x : V
w✝¹ : x ∉ L
e₁ : G.componentComplMk w✝¹ = G.componentComplMk xnL
w✝ : x ∉ K
⊢ hom h (G.componentComplMk xnL) = G.componentComplMk w✝

tactic: rw [← e₁]
state_before: case mpr.intro.intro.intro.intro
V : Type u
G : SimpleGraph V
K L L' M : Set V
C : G.ComponentCompl L
h : K ⊆ L
x✝ : V
xnL : x✝ ∉ L
x : V
w✝¹ : x ∉ L
e₁ : G.componentComplMk w✝¹ = G.componentComplMk xnL
w✝ : x ∉ K
⊢ hom h (G.componentComplMk xnL) = G.componentComplMk w✝
state_after: case mpr.intro.intro.intro.intro
V : Type u
G : SimpleGraph V
K L L' M : Set V
C : G.ComponentCompl L
h : K ⊆ L
x✝ : V
xnL : x✝ ∉ L
x : V
w✝¹ : x ∉ L
e₁ : G.componentComplMk w✝¹ = G.componentComplMk xnL
w✝ : x ∉ K
⊢ hom h (G.componentComplMk w✝¹) = G.componentComplMk w✝

tactic: rfl
state_before: case mpr.intro.intro.intro.intro
V : Type u
G : SimpleGraph V
K L L' M : Set V
C : G.ComponentCompl L
h : K ⊆ L
x✝ : V
xnL : x✝ ∉ L
x : V
w✝¹ : x ∉ L
e₁ : G.componentComplMk w✝¹ = G.componentComplMk xnL
w✝ : x ∉ K
⊢ hom h (G.componentComplMk w✝¹) = G.componentComplMk w✝
state_after: no goals