Theorem: IsCompact.image_of_continuousOn
File: Mathlib/Topology/SubsetProperties.lean

tactic: intro l lne ls
state_before: α : Type u
β : Type v
ι : Type ?u.7857
π : ι → Type ?u.7862
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
f : α → β
hs : IsCompact s
hf : ContinuousOn f s
⊢ IsCompact (f '' s)

tactic: have : NeBot (l.comap f ⊓ 𝓟 s) :=
  comap_inf_principal_neBot_of_image_mem lne (le_principal_iff.1 ls)
state_before: α : Type u
β : Type v
ι : Type ?u.7857
π : ι → Type ?u.7862
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
f : α → β
hs : IsCompact s
hf : ContinuousOn f s
l : Filter β
lne : NeBot l
ls : l ≤ 𝓟 (f '' s)
⊢ ∃ a, a ∈ f '' s ∧ ClusterPt a l

tactic: obtain ⟨a, has, ha⟩ : ∃ a ∈ s, ClusterPt a (l.comap f ⊓ 𝓟 s) := @hs _ this inf_le_right
state_before: α : Type u
β : Type v
ι : Type ?u.7857
π : ι → Type ?u.7862
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
f : α → β
hs : IsCompact s
hf : ContinuousOn f s
l : Filter β
lne : NeBot l
ls : l ≤ 𝓟 (f '' s)
this : NeBot (comap f l ⊓ 𝓟 s)
⊢ ∃ a, a ∈ f '' s ∧ ClusterPt a l

tactic: haveI := ha.neBot
state_before: case intro.intro
α : Type u
β : Type v
ι : Type ?u.7857
π : ι → Type ?u.7862
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
f : α → β
hs : IsCompact s
hf : ContinuousOn f s
l : Filter β
lne : NeBot l
ls : l ≤ 𝓟 (f '' s)
this : NeBot (comap f l ⊓ 𝓟 s)
a : α
has : a ∈ s
ha : ClusterPt a (comap f l ⊓ 𝓟 s)
⊢ ∃ a, a ∈ f '' s ∧ ClusterPt a l

tactic: use f a, mem_image_of_mem f has
state_before: case intro.intro
α : Type u
β : Type v
ι : Type ?u.7857
π : ι → Type ?u.7862
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
f : α → β
hs : IsCompact s
hf : ContinuousOn f s
l : Filter β
lne : NeBot l
ls : l ≤ 𝓟 (f '' s)
this✝ : NeBot (comap f l ⊓ 𝓟 s)
a : α
has : a ∈ s
ha : ClusterPt a (comap f l ⊓ 𝓟 s)
this : NeBot (𝓝 a ⊓ (comap f l ⊓ 𝓟 s))
⊢ ∃ a, a ∈ f '' s ∧ ClusterPt a l

tactic: have : Tendsto f (𝓝 a ⊓ (comap f l ⊓ 𝓟 s)) (𝓝 (f a) ⊓ l) := by
  convert (hf a has).inf (@tendsto_comap _ _ f l) using 1
  rw [nhdsWithin]
  ac_rfl
state_before: case intro.intro
α : Type u
β : Type v
ι : Type ?u.7857
π : ι → Type ?u.7862
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
f : α → β
hs : IsCompact s
hf : ContinuousOn f s
l : Filter β
lne : NeBot l
ls : l ≤ 𝓟 (f '' s)
this✝ : NeBot (comap f l ⊓ 𝓟 s)
a : α
has : a ∈ s
ha : ClusterPt a (comap f l ⊓ 𝓟 s)
this : NeBot (𝓝 a ⊓ (comap f l ⊓ 𝓟 s))
⊢ ClusterPt (f a) l

tactic: exact this.neBot
state_before: case intro.intro
α : Type u
β : Type v
ι : Type ?u.7857
π : ι → Type ?u.7862
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
f : α → β
hs : IsCompact s
hf : ContinuousOn f s
l : Filter β
lne : NeBot l
ls : l ≤ 𝓟 (f '' s)
this✝¹ : NeBot (comap f l ⊓ 𝓟 s)
a : α
has : a ∈ s
ha : ClusterPt a (comap f l ⊓ 𝓟 s)
this✝ : NeBot (𝓝 a ⊓ (comap f l ⊓ 𝓟 s))
this : Tendsto f (𝓝 a ⊓ (comap f l ⊓ 𝓟 s)) (𝓝 (f a) ⊓ l)
⊢ ClusterPt (f a) l

tactic: convert (hf a has).inf (@tendsto_comap _ _ f l) using 1
state_before: α : Type u
β : Type v
ι : Type ?u.7857
π : ι → Type ?u.7862
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
f : α → β
hs : IsCompact s
hf : ContinuousOn f s
l : Filter β
lne : NeBot l
ls : l ≤ 𝓟 (f '' s)
this✝ : NeBot (comap f l ⊓ 𝓟 s)
a : α
has : a ∈ s
ha : ClusterPt a (comap f l ⊓ 𝓟 s)
this : NeBot (𝓝 a ⊓ (comap f l ⊓ 𝓟 s))
⊢ Tendsto f (𝓝 a ⊓ (comap f l ⊓ 𝓟 s)) (𝓝 (f a) ⊓ l)

tactic: rw [nhdsWithin]
state_before: case h.e'_4
α : Type u
β : Type v
ι : Type ?u.7857
π : ι → Type ?u.7862
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
f : α → β
hs : IsCompact s
hf : ContinuousOn f s
l : Filter β
lne : NeBot l
ls : l ≤ 𝓟 (f '' s)
this✝ : NeBot (comap f l ⊓ 𝓟 s)
a : α
has : a ∈ s
ha : ClusterPt a (comap f l ⊓ 𝓟 s)
this : NeBot (𝓝 a ⊓ (comap f l ⊓ 𝓟 s))
⊢ 𝓝 a ⊓ (comap f l ⊓ 𝓟 s) = 𝓝[s] a ⊓ comap f l

tactic: ac_rfl
state_before: case h.e'_4
α : Type u
β : Type v
ι : Type ?u.7857
π : ι → Type ?u.7862
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
s t : Set α
f : α → β
hs : IsCompact s
hf : ContinuousOn f s
l : Filter β
lne : NeBot l
ls : l ≤ 𝓟 (f '' s)
this✝ : NeBot (comap f l ⊓ 𝓟 s)
a : α
has : a ∈ s
ha : ClusterPt a (comap f l ⊓ 𝓟 s)
this : NeBot (𝓝 a ⊓ (comap f l ⊓ 𝓟 s))
⊢ 𝓝 a ⊓ (comap f l ⊓ 𝓟 s) = 𝓝 a ⊓ 𝓟 s ⊓ comap f l