Theorem: AddSubgroup.properlyDiscontinuousVAdd_opposite_of_tendsto_cofinite
File: Mathlib/Topology/Algebra/Group/Basic.lean

Proof steps:
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : S✝.Normal
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (⇑S.subtype) cofinite (cocompact G)
⊢ ∀ {K L : Set G}, IsCompact K → IsCompact L → {γ | (fun x => γ • x) '' K ∩ L ≠ ∅}.Finite
state_after: G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : S✝.Normal
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (⇑S.subtype) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
⊢ {γ | (fun x => γ • x) '' K ∩ L ≠ ∅}.Finite
tactic: intro K L hK hL
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : S✝.Normal
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (⇑S.subtype) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
⊢ {γ | (fun x => γ • x) '' K ∩ L ≠ ∅}.Finite
state_after: G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : S✝.Normal
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (⇑S.subtype) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
this : Continuous fun p => (p.1⁻¹, p.2)
⊢ {γ | (fun x => γ • x) '' K ∩ L ≠ ∅}.Finite
tactic: have : Continuous fun p : G × G => (p.1⁻¹, p.2) := continuous_inv.prod_map continuous_id
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : S✝.Normal
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (⇑S.subtype) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
this : Continuous fun p => (p.1⁻¹, p.2)
⊢ {γ | (fun x => γ • x) '' K ∩ L ≠ ∅}.Finite
state_after: G : Type w
H✝ : Type x
α : Type u
β : Type v
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : S✝.Normal
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (⇑S.subtype) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
this : Continuous fun p => (p.1⁻¹, p.2)
H : (⇑S.subtype ⁻¹' (((fun p => p.1 * p.2) ∘ fun p => (p.1⁻¹, p.2)) '' K ×ˢ L)ᶜ)ᶜ.Finite
⊢ {γ | (fun x => γ • x) '' K ∩ L ≠ ∅}.Finite
tactic: have H : Set.Finite _ :=
        hS ((hK.prod hL).image (continuous_mul.comp this)).compl_mem_cocompact
state_before: G : Type w
H✝ : Type x
α : Type u
β : Type v
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : S✝.Normal
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (⇑S.subtype) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
this : Continuous fun p => (p.1⁻¹, p.2)
H : (⇑S.subtype ⁻¹' (((fun p => p.1 * p.2) ∘ fun p => (p.1⁻¹, p.2)) '' K ×ˢ L)ᶜ)ᶜ.Finite
⊢ {γ | (fun x => γ • x) '' K ∩ L ≠ ∅}.Finite
state_after: G : Type w
H✝ : Type x
α : Type u
β : Type v
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : S✝.Normal
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (⇑S.subtype) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
this : Continuous fun p => (p.1⁻¹, p.2)
H : (Subtype.val ⁻¹' ((fun a => a.1⁻¹ * a.2) '' K ×ˢ L)).Finite
⊢ {γ | (fun x => γ • x) '' K ∩ L ≠ ∅}.Finite
tactic: simp only [preimage_compl, compl_compl, coeSubtype, comp_apply] at H
state_before: G : Type w
H✝ : Type x
α : Type u
β : Type v
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : S✝.Normal
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (⇑S.subtype) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
this : Continuous fun p => (p.1⁻¹, p.2)
H : (Subtype.val ⁻¹' ((fun a => a.1⁻¹ * a.2) '' K ×ˢ L)).Finite
⊢ {γ | (fun x => γ • x) '' K ∩ L ≠ ∅}.Finite
state_after: G : Type w
H✝ : Type x
α : Type u
β : Type v
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : S✝.Normal
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (⇑S.subtype) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
this : Continuous fun p => (p.1⁻¹, p.2)
H : (Subtype.val ⁻¹' ((fun a => a.1⁻¹ * a.2) '' K ×ˢ L)).Finite
⊢ (⇑S.equivOp ⁻¹' {γ | (fun x => γ • x) '' K ∩ L ≠ ∅}).Finite
tactic: apply Finite.of_preimage _ (equivOp S).surjective
state_before: G : Type w
H✝ : Type x
α : Type u
β : Type v
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : S✝.Normal
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (⇑S.subtype) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
this : Continuous fun p => (p.1⁻¹, p.2)
H : (Subtype.val ⁻¹' ((fun a => a.1⁻¹ * a.2) '' K ×ˢ L)).Finite
⊢ (⇑S.equivOp ⁻¹' {γ | (fun x => γ • x) '' K ∩ L ≠ ∅}).Finite
state_after: case h.e'_2
G : Type w
H✝ : Type x
α : Type u
β : Type v
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : S✝.Normal
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (⇑S.subtype) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
this : Continuous fun p => (p.1⁻¹, p.2)
H : (Subtype.val ⁻¹' ((fun a => a.1⁻¹ * a.2) '' K ×ˢ L)).Finite
⊢ ⇑S.equivOp ⁻¹' {γ | (fun x => γ • x) '' K ∩ L ≠ ∅} = Subtype.val ⁻¹' ((fun a => a.1⁻¹ * a.2) '' K ×ˢ L)
tactic: convert H using 1
state_before: case h.e'_2
G : Type w
H✝ : Type x
α : Type u
β : Type v
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : S✝.Normal
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (⇑S.subtype) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
this : Continuous fun p => (p.1⁻¹, p.2)
H : (Subtype.val ⁻¹' ((fun a => a.1⁻¹ * a.2) '' K ×ˢ L)).Finite
⊢ ⇑S.equivOp ⁻¹' {γ | (fun x => γ • x) '' K ∩ L ≠ ∅} = Subtype.val ⁻¹' ((fun a => a.1⁻¹ * a.2) '' K ×ˢ L)
state_after: case h.e'_2.h
G : Type w
H✝ : Type x
α : Type u
β : Type v
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : S✝.Normal
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (⇑S.subtype) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
this : Continuous fun p => (p.1⁻¹, p.2)
H : (Subtype.val ⁻¹' ((fun a => a.1⁻¹ * a.2) '' K ×ˢ L)).Finite
x : ↥S
⊢ x ∈ ⇑S.equivOp ⁻¹' {γ | (fun x => γ • x) '' K ∩ L ≠ ∅} ↔ x ∈ Subtype.val ⁻¹' ((fun a => a.1⁻¹ * a.2) '' K ×ˢ L)
tactic: ext x
state_before: case h.e'_2.h
G : Type w
H✝ : Type x
α : Type u
β : Type v
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : S✝.Normal
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (⇑S.subtype) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
this : Continuous fun p => (p.1⁻¹, p.2)
H : (Subtype.val ⁻¹' ((fun a => a.1⁻¹ * a.2) '' K ×ˢ L)).Finite
x : ↥S
⊢ x ∈ ⇑S.equivOp ⁻¹' {γ | (fun x => γ • x) '' K ∩ L ≠ ∅} ↔ x ∈ Subtype.val ⁻¹' ((fun a => a.1⁻¹ * a.2) '' K ×ˢ L)
state_after: case h.e'_2.h
G : Type w
H✝ : Type x
α : Type u
β : Type v
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : S✝.Normal
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (⇑S.subtype) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
this : Continuous fun p => (p.1⁻¹, p.2)
H : (Subtype.val ⁻¹' ((fun a => a.1⁻¹ * a.2) '' K ×ˢ L)).Finite
x : ↥S
⊢ S.equivOp x • K ∩ L ≠ ∅ ↔ ∃ a b, (a, b) ∈ K ×ˢ L ∧ a⁻¹ * b = ↑x
tactic: simp only [image_smul, mem_setOf_eq, coeSubtype, mem_preimage, mem_image, Prod.exists]
state_before: case h.e'_2.h
G : Type w
H✝ : Type x
α : Type u
β : Type v
inst✝⁴ : TopologicalSpace G
inst✝³ : Group G
inst✝² : TopologicalGroup G
S✝ : Subgroup G
inst✝¹ : S✝.Normal
inst✝ : IsClosed ↑S✝
S : Subgroup G
hS : Tendsto (⇑S.subtype) cofinite (cocompact G)
K L : Set G
hK : IsCompact K
hL : IsCompact L
this : Continuous fun p => (p.1⁻¹, p.2)
H : (Subtype.val ⁻¹' ((fun a => a.1⁻¹ * a.2) '' K ×ˢ L)).Finite
x : ↥S
⊢ S.equivOp x • K ∩ L ≠ ∅ ↔ ∃ a b, (a, b) ∈ K ×ˢ L ∧ a⁻¹ * b = ↑x
state_after: no goals
tactic: exact Set.op_smul_inter_ne_empty_iff