Theorem: Subgroup.properlyDiscontinuousSMul_of_tendsto_cofinite
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: intro K L hK hL
state_before: α : Type u
β : Type v
G : Type w
H : Type x
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : Normal S✝
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (↑(Subgroup.subtype S)) cofinite (cocompact G)
⊢ ∀ {K L : Set G}, IsCompact K → IsCompact L → Set.Finite {γ | (fun x => γ • x) '' K ∩ L ≠ ∅}

tactic: have H : Set.Finite _ := hS ((hL.prod hK).image continuous_div').compl_mem_cocompact
state_before: α : Type u
β : Type v
G : Type w
H : Type x
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : Normal S✝
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (↑(Subgroup.subtype S)) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
⊢ Set.Finite {γ | (fun x => γ • x) '' K ∩ L ≠ ∅}

tactic: rw [preimage_compl, compl_compl] at H
state_before: α : Type u
β : Type v
G : Type w
H✝ : Type x
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : Normal S✝
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (↑(Subgroup.subtype S)) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
H : Set.Finite ((↑(Subgroup.subtype S) ⁻¹' ((fun p => p.fst / p.snd) '' L ×ˢ K)ᶜ)ᶜ)
⊢ Set.Finite {γ | (fun x => γ • x) '' K ∩ L ≠ ∅}

tactic: convert H
state_before: α : Type u
β : Type v
G : Type w
H✝ : Type x
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : Normal S✝
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (↑(Subgroup.subtype S)) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
H : Set.Finite (↑(Subgroup.subtype S) ⁻¹' ((fun p => p.fst / p.snd) '' L ×ˢ K))
⊢ Set.Finite {γ | (fun x => γ • x) '' K ∩ L ≠ ∅}

tactic: ext x
state_before: case h.e'_2
α : Type u
β : Type v
G : Type w
H✝ : Type x
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : Normal S✝
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (↑(Subgroup.subtype S)) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
H : Set.Finite (↑(Subgroup.subtype S) ⁻¹' ((fun p => p.fst / p.snd) '' L ×ˢ K))
⊢ {γ | (fun x => γ • x) '' K ∩ L ≠ ∅} = ↑(Subgroup.subtype S) ⁻¹' ((fun p => p.fst / p.snd) '' L ×ˢ K)

tactic: simp only [image_smul, mem_setOf_eq, coeSubtype, mem_preimage, mem_image, Prod.exists]
state_before: case h.e'_2.h
α : Type u
β : Type v
G : Type w
H✝ : Type x
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : Normal S✝
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (↑(Subgroup.subtype S)) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
H : Set.Finite (↑(Subgroup.subtype S) ⁻¹' ((fun p => p.fst / p.snd) '' L ×ˢ K))
x : { x // x ∈ S }
⊢ x ∈ {γ | (fun x => γ • x) '' K ∩ L ≠ ∅} ↔ x ∈ ↑(Subgroup.subtype S) ⁻¹' ((fun p => p.fst / p.snd) '' L ×ˢ K)

tactic: exact Set.smul_inter_ne_empty_iff'
state_before: case h.e'_2.h
α : Type u
β : Type v
G : Type w
H✝ : Type x
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : Normal S✝
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (↑(Subgroup.subtype S)) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
H : Set.Finite (↑(Subgroup.subtype S) ⁻¹' ((fun p => p.fst / p.snd) '' L ×ˢ K))
x : { x // x ∈ S }
⊢ x • K ∩ L ≠ ∅ ↔ ∃ a b, (a, b) ∈ L ×ˢ K ∧ a / b = ↑x