Theorem: Set.range_inclusion
File: Mathlib/Data/Set/Image.lean

tactic: ext ⟨x, hx⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
⊢ range (inclusion h) = {x | ↑x ∈ s}
state_after: case h.mk
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
x : α
hx : x ∈ t
⊢ ⟨x, hx⟩ ∈ range (inclusion h) ↔ ⟨x, hx⟩ ∈ {x | ↑x ∈ s}

tactic: apply Iff.intro
state_before: case h.mk
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
x : α
hx : x ∈ t
⊢ ⟨x, hx⟩ ∈ range (inclusion h) ↔ ⟨x, hx⟩ ∈ {x | ↑x ∈ s}
state_after: case h.mk.mp
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
x : α
hx : x ∈ t
⊢ ⟨x, hx⟩ ∈ range (inclusion h) → ⟨x, hx⟩ ∈ {x | ↑x ∈ s}

case h.mk.mpr
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
x : α
hx : x ∈ t
⊢ ⟨x, hx⟩ ∈ {x | ↑x ∈ s} → ⟨x, hx⟩ ∈ range (inclusion h)

tactic: rw [mem_range]
state_before: case h.mk.mp
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
x : α
hx : x ∈ t
⊢ ⟨x, hx⟩ ∈ range (inclusion h) → ⟨x, hx⟩ ∈ {x | ↑x ∈ s}
state_after: case h.mk.mp
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
x : α
hx : x ∈ t
⊢ (∃ y, inclusion h y = ⟨x, hx⟩) → ⟨x, hx⟩ ∈ {x | ↑x ∈ s}

tactic: rintro ⟨a, ha⟩
state_before: case h.mk.mp
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
x : α
hx : x ∈ t
⊢ (∃ y, inclusion h y = ⟨x, hx⟩) → ⟨x, hx⟩ ∈ {x | ↑x ∈ s}
state_after: case h.mk.mp.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
x : α
hx : x ∈ t
a : ↑s
ha : inclusion h a = ⟨x, hx⟩
⊢ ⟨x, hx⟩ ∈ {x | ↑x ∈ s}

tactic: rw [inclusion, Subtype.mk.injEq] at ha
state_before: case h.mk.mp.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
x : α
hx : x ∈ t
a : ↑s
ha : inclusion h a = ⟨x, hx⟩
⊢ ⟨x, hx⟩ ∈ {x | ↑x ∈ s}
state_after: case h.mk.mp.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
x : α
hx : x ∈ t
a : ↑s
ha : ↑a = x
⊢ ⟨x, hx⟩ ∈ {x | ↑x ∈ s}

tactic: rw [mem_setOf, Subtype.coe_mk, ← ha]
state_before: case h.mk.mp.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
x : α
hx : x ∈ t
a : ↑s
ha : ↑a = x
⊢ ⟨x, hx⟩ ∈ {x | ↑x ∈ s}
state_after: case h.mk.mp.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
x : α
hx : x ∈ t
a : ↑s
ha : ↑a = x
⊢ ↑a ∈ s

tactic: exact Subtype.coe_prop _
state_before: case h.mk.mp.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
x : α
hx : x ∈ t
a : ↑s
ha : ↑a = x
⊢ ↑a ∈ s
state_after: no goals

tactic: rw [mem_setOf, Subtype.coe_mk, mem_range]
state_before: case h.mk.mpr
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
x : α
hx : x ∈ t
⊢ ⟨x, hx⟩ ∈ {x | ↑x ∈ s} → ⟨x, hx⟩ ∈ range (inclusion h)
state_after: case h.mk.mpr
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
x : α
hx : x ∈ t
⊢ x ∈ s → ∃ y, inclusion h y = ⟨x, hx⟩

tactic: intro hx'
state_before: case h.mk.mpr
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
x : α
hx : x ∈ t
⊢ x ∈ s → ∃ y, inclusion h y = ⟨x, hx⟩
state_after: case h.mk.mpr
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
x : α
hx : x ∈ t
hx' : x ∈ s
⊢ ∃ y, inclusion h y = ⟨x, hx⟩

tactic: use ⟨x, hx'⟩
state_before: case h.mk.mpr
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
x : α
hx : x ∈ t
hx' : x ∈ s
⊢ ∃ y, inclusion h y = ⟨x, hx⟩
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
x : α
hx : x ∈ t
hx' : x ∈ s
⊢ inclusion h ⟨x, hx'⟩ = ⟨x, hx⟩

tactic: trivial
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s t : Set α
h : s ⊆ t
x : α
hx : x ∈ t
hx' : x ∈ s
⊢ inclusion h ⟨x, hx'⟩ = ⟨x, hx⟩
state_after: no goals