Theorem: IsClosed.smul_left_of_isCompact
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: have : ∀ x ∈ s • t, ∃ g ∈ s, g⁻¹ • x ∈ t := by
  rintro x ⟨g, hgs, y, hyt, rfl⟩
  refine ⟨g, hgs, ?_⟩
  rwa [inv_smul_smul]
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : Group α
inst✝² : MulAction α β
inst✝¹ : ContinuousInv α
inst✝ : ContinuousSMul α β
s : Set α
t : Set β
ht : IsClosed t
hs : IsCompact s
⊢ IsClosed (s • t)
state_after: G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : Group α
inst✝² : MulAction α β
inst✝¹ : ContinuousInv α
inst✝ : ContinuousSMul α β
s : Set α
t : Set β
ht : IsClosed t
hs : IsCompact s
this : ∀ x ∈ s • t, ∃ g ∈ s, g⁻¹ • x ∈ t
⊢ IsClosed (s • t)

tactic: choose! f hf using this
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : Group α
inst✝² : MulAction α β
inst✝¹ : ContinuousInv α
inst✝ : ContinuousSMul α β
s : Set α
t : Set β
ht : IsClosed t
hs : IsCompact s
this : ∀ x ∈ s • t, ∃ g ∈ s, g⁻¹ • x ∈ t
⊢ IsClosed (s • t)
state_after: G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : Group α
inst✝² : MulAction α β
inst✝¹ : ContinuousInv α
inst✝ : ContinuousSMul α β
s : Set α
t : Set β
ht : IsClosed t
hs : IsCompact s
f : β → α
hf : ∀ x ∈ s • t, f x ∈ s ∧ (f x)⁻¹ • x ∈ t
⊢ IsClosed (s • t)

tactic: refine isClosed_of_closure_subset (fun x hx ↦ ?_)
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : Group α
inst✝² : MulAction α β
inst✝¹ : ContinuousInv α
inst✝ : ContinuousSMul α β
s : Set α
t : Set β
ht : IsClosed t
hs : IsCompact s
f : β → α
hf : ∀ x ∈ s • t, f x ∈ s ∧ (f x)⁻¹ • x ∈ t
⊢ IsClosed (s • t)
state_after: G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : Group α
inst✝² : MulAction α β
inst✝¹ : ContinuousInv α
inst✝ : ContinuousSMul α β
s : Set α
t : Set β
ht : IsClosed t
hs : IsCompact s
f : β → α
hf : ∀ x ∈ s • t, f x ∈ s ∧ (f x)⁻¹ • x ∈ t
x : β
hx : x ∈ closure (s • t)
⊢ x ∈ s • t

tactic: rcases mem_closure_iff_ultrafilter.mp hx with ⟨u, hust, hux⟩
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : Group α
inst✝² : MulAction α β
inst✝¹ : ContinuousInv α
inst✝ : ContinuousSMul α β
s : Set α
t : Set β
ht : IsClosed t
hs : IsCompact s
f : β → α
hf : ∀ x ∈ s • t, f x ∈ s ∧ (f x)⁻¹ • x ∈ t
x : β
hx : x ∈ closure (s • t)
⊢ x ∈ s • t
state_after: case intro.intro
G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : Group α
inst✝² : MulAction α β
inst✝¹ : ContinuousInv α
inst✝ : ContinuousSMul α β
s : Set α
t : Set β
ht : IsClosed t
hs : IsCompact s
f : β → α
hf : ∀ x ∈ s • t, f x ∈ s ∧ (f x)⁻¹ • x ∈ t
x : β
hx : x ∈ closure (s • t)
u : Ultrafilter β
hust : s • t ∈ u
hux : ↑u ≤ 𝓝 x
⊢ x ∈ s • t

tactic: have : Ultrafilter.map f u ≤ 𝓟 s :=
  calc Ultrafilter.map f u ≤ map f (𝓟 (s • t)) := map_mono (le_principal_iff.mpr hust)
    _ = 𝓟 (f '' (s • t)) := map_principal
    _ ≤ 𝓟 s := principal_mono.mpr (image_subset_iff.mpr (fun x hx ↦ (hf x hx).1))
state_before: case intro.intro
G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : Group α
inst✝² : MulAction α β
inst✝¹ : ContinuousInv α
inst✝ : ContinuousSMul α β
s : Set α
t : Set β
ht : IsClosed t
hs : IsCompact s
f : β → α
hf : ∀ x ∈ s • t, f x ∈ s ∧ (f x)⁻¹ • x ∈ t
x : β
hx : x ∈ closure (s • t)
u : Ultrafilter β
hust : s • t ∈ u
hux : ↑u ≤ 𝓝 x
⊢ x ∈ s • t
state_after: case intro.intro
G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : Group α
inst✝² : MulAction α β
inst✝¹ : ContinuousInv α
inst✝ : ContinuousSMul α β
s : Set α
t : Set β
ht : IsClosed t
hs : IsCompact s
f : β → α
hf : ∀ x ∈ s • t, f x ∈ s ∧ (f x)⁻¹ • x ∈ t
x : β
hx : x ∈ closure (s • t)
u : Ultrafilter β
hust : s • t ∈ u
hux : ↑u ≤ 𝓝 x
this : ↑(Ultrafilter.map f u) ≤ 𝓟 s
⊢ x ∈ s • t

tactic: rcases hs.ultrafilter_le_nhds (Ultrafilter.map f u) this with ⟨g, hg, hug⟩
state_before: case intro.intro
G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : Group α
inst✝² : MulAction α β
inst✝¹ : ContinuousInv α
inst✝ : ContinuousSMul α β
s : Set α
t : Set β
ht : IsClosed t
hs : IsCompact s
f : β → α
hf : ∀ x ∈ s • t, f x ∈ s ∧ (f x)⁻¹ • x ∈ t
x : β
hx : x ∈ closure (s • t)
u : Ultrafilter β
hust : s • t ∈ u
hux : ↑u ≤ 𝓝 x
this : ↑(Ultrafilter.map f u) ≤ 𝓟 s
⊢ x ∈ s • t
state_after: case intro.intro.intro.intro
G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : Group α
inst✝² : MulAction α β
inst✝¹ : ContinuousInv α
inst✝ : ContinuousSMul α β
s : Set α
t : Set β
ht : IsClosed t
hs : IsCompact s
f : β → α
hf : ∀ x ∈ s • t, f x ∈ s ∧ (f x)⁻¹ • x ∈ t
x : β
hx : x ∈ closure (s • t)
u : Ultrafilter β
hust : s • t ∈ u
hux : ↑u ≤ 𝓝 x
this : ↑(Ultrafilter.map f u) ≤ 𝓟 s
g : α
hg : g ∈ s
hug : ↑(Ultrafilter.map f u) ≤ 𝓝 g
⊢ x ∈ s • t

tactic: suffices g⁻¹ • x ∈ t from
  ⟨g, hg, g⁻¹ • x, this, smul_inv_smul _ _⟩
state_before: case intro.intro.intro.intro
G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : Group α
inst✝² : MulAction α β
inst✝¹ : ContinuousInv α
inst✝ : ContinuousSMul α β
s : Set α
t : Set β
ht : IsClosed t
hs : IsCompact s
f : β → α
hf : ∀ x ∈ s • t, f x ∈ s ∧ (f x)⁻¹ • x ∈ t
x : β
hx : x ∈ closure (s • t)
u : Ultrafilter β
hust : s • t ∈ u
hux : ↑u ≤ 𝓝 x
this : ↑(Ultrafilter.map f u) ≤ 𝓟 s
g : α
hg : g ∈ s
hug : ↑(Ultrafilter.map f u) ≤ 𝓝 g
⊢ x ∈ s • t
state_after: case intro.intro.intro.intro
G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : Group α
inst✝² : MulAction α β
inst✝¹ : ContinuousInv α
inst✝ : ContinuousSMul α β
s : Set α
t : Set β
ht : IsClosed t
hs : IsCompact s
f : β → α
hf : ∀ x ∈ s • t, f x ∈ s ∧ (f x)⁻¹ • x ∈ t
x : β
hx : x ∈ closure (s • t)
u : Ultrafilter β
hust : s • t ∈ u
hux : ↑u ≤ 𝓝 x
this : ↑(Ultrafilter.map f u) ≤ 𝓟 s
g : α
hg : g ∈ s
hug : ↑(Ultrafilter.map f u) ≤ 𝓝 g
⊢ g⁻¹ • x ∈ t

tactic: exact ht.mem_of_tendsto ((Tendsto.inv hug).smul hux)
  (Eventually.mono hust (fun y hy ↦ (hf y hy).2))
state_before: case intro.intro.intro.intro
G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : Group α
inst✝² : MulAction α β
inst✝¹ : ContinuousInv α
inst✝ : ContinuousSMul α β
s : Set α
t : Set β
ht : IsClosed t
hs : IsCompact s
f : β → α
hf : ∀ x ∈ s • t, f x ∈ s ∧ (f x)⁻¹ • x ∈ t
x : β
hx : x ∈ closure (s • t)
u : Ultrafilter β
hust : s • t ∈ u
hux : ↑u ≤ 𝓝 x
this : ↑(Ultrafilter.map f u) ≤ 𝓟 s
g : α
hg : g ∈ s
hug : ↑(Ultrafilter.map f u) ≤ 𝓝 g
⊢ g⁻¹ • x ∈ t
state_after: no goals

tactic: rintro x ⟨g, hgs, y, hyt, rfl⟩
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : Group α
inst✝² : MulAction α β
inst✝¹ : ContinuousInv α
inst✝ : ContinuousSMul α β
s : Set α
t : Set β
ht : IsClosed t
hs : IsCompact s
⊢ ∀ x ∈ s • t, ∃ g ∈ s, g⁻¹ • x ∈ t
state_after: case intro.intro.intro.intro
G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : Group α
inst✝² : MulAction α β
inst✝¹ : ContinuousInv α
inst✝ : ContinuousSMul α β
s : Set α
t : Set β
ht : IsClosed t
hs : IsCompact s
g : α
hgs : g ∈ s
y : β
hyt : y ∈ t
⊢ ∃ g_1 ∈ s, g_1⁻¹ • (fun x x_1 => x • x_1) g y ∈ t

tactic: refine ⟨g, hgs, ?_⟩
state_before: case intro.intro.intro.intro
G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : Group α
inst✝² : MulAction α β
inst✝¹ : ContinuousInv α
inst✝ : ContinuousSMul α β
s : Set α
t : Set β
ht : IsClosed t
hs : IsCompact s
g : α
hgs : g ∈ s
y : β
hyt : y ∈ t
⊢ ∃ g_1 ∈ s, g_1⁻¹ • (fun x x_1 => x • x_1) g y ∈ t
state_after: case intro.intro.intro.intro
G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : Group α
inst✝² : MulAction α β
inst✝¹ : ContinuousInv α
inst✝ : ContinuousSMul α β
s : Set α
t : Set β
ht : IsClosed t
hs : IsCompact s
g : α
hgs : g ∈ s
y : β
hyt : y ∈ t
⊢ g⁻¹ • (fun x x_1 => x • x_1) g y ∈ t

tactic: rwa [inv_smul_smul]
state_before: case intro.intro.intro.intro
G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁵ : TopologicalSpace α
inst✝⁴ : TopologicalSpace β
inst✝³ : Group α
inst✝² : MulAction α β
inst✝¹ : ContinuousInv α
inst✝ : ContinuousSMul α β
s : Set α
t : Set β
ht : IsClosed t
hs : IsCompact s
g : α
hgs : g ∈ s
y : β
hyt : y ∈ t
⊢ g⁻¹ • (fun x x_1 => x • x_1) g y ∈ t
state_after: no goals