Theorem: tendsto_div_comap_self
File: Mathlib/Topology/Algebra/UniformGroup.lean

tactic: have comm : ((fun x : α × α => x.2 / x.1) ∘ fun t : β × β => (e t.1, e t.2)) =
    e ∘ fun t : β × β => t.2 / t.1 := by
  ext t
  change e t.2 / e t.1 = e (t.2 / t.1)
  rw [← map_div e t.2 t.1]
state_before: α : Type u_2
β : Type u_1
hom : Type u_3
inst✝⁵ : TopologicalSpace α
inst✝⁴ : Group α
inst✝³ : TopologicalGroup α
inst✝² : TopologicalSpace β
inst✝¹ : Group β
inst✝ : MonoidHomClass hom β α
e : hom
de : DenseInducing ↑e
x₀ : α
⊢ Tendsto (fun t => t.snd / t.fst) (comap (fun p => (↑e p.fst, ↑e p.snd)) (𝓝 (x₀, x₀))) (𝓝 1)

tactic: have lim : Tendsto (fun x : α × α => x.2 / x.1) (𝓝 (x₀, x₀)) (𝓝 (e 1)) := by
  simpa using (continuous_div'.comp (@continuous_swap α α _ _)).tendsto (x₀, x₀)
state_before: α : Type u_2
β : Type u_1
hom : Type u_3
inst✝⁵ : TopologicalSpace α
inst✝⁴ : Group α
inst✝³ : TopologicalGroup α
inst✝² : TopologicalSpace β
inst✝¹ : Group β
inst✝ : MonoidHomClass hom β α
e : hom
de : DenseInducing ↑e
x₀ : α
comm : ((fun x => x.snd / x.fst) ∘ fun t => (↑e t.fst, ↑e t.snd)) = ↑e ∘ fun t => t.snd / t.fst
⊢ Tendsto (fun t => t.snd / t.fst) (comap (fun p => (↑e p.fst, ↑e p.snd)) (𝓝 (x₀, x₀))) (𝓝 1)

tactic: simpa using de.tendsto_comap_nhds_nhds lim comm
state_before: α : Type u_2
β : Type u_1
hom : Type u_3
inst✝⁵ : TopologicalSpace α
inst✝⁴ : Group α
inst✝³ : TopologicalGroup α
inst✝² : TopologicalSpace β
inst✝¹ : Group β
inst✝ : MonoidHomClass hom β α
e : hom
de : DenseInducing ↑e
x₀ : α
comm : ((fun x => x.snd / x.fst) ∘ fun t => (↑e t.fst, ↑e t.snd)) = ↑e ∘ fun t => t.snd / t.fst
lim : Tendsto (fun x => x.snd / x.fst) (𝓝 (x₀, x₀)) (𝓝 (↑e 1))
⊢ Tendsto (fun t => t.snd / t.fst) (comap (fun p => (↑e p.fst, ↑e p.snd)) (𝓝 (x₀, x₀))) (𝓝 1)

tactic: ext t
state_before: α : Type u_2
β : Type u_1
hom : Type u_3
inst✝⁵ : TopologicalSpace α
inst✝⁴ : Group α
inst✝³ : TopologicalGroup α
inst✝² : TopologicalSpace β
inst✝¹ : Group β
inst✝ : MonoidHomClass hom β α
e : hom
de : DenseInducing ↑e
x₀ : α
⊢ ((fun x => x.snd / x.fst) ∘ fun t => (↑e t.fst, ↑e t.snd)) = ↑e ∘ fun t => t.snd / t.fst

tactic: change e t.2 / e t.1 = e (t.2 / t.1)
state_before: case h
α : Type u_2
β : Type u_1
hom : Type u_3
inst✝⁵ : TopologicalSpace α
inst✝⁴ : Group α
inst✝³ : TopologicalGroup α
inst✝² : TopologicalSpace β
inst✝¹ : Group β
inst✝ : MonoidHomClass hom β α
e : hom
de : DenseInducing ↑e
x₀ : α
t : β × β
⊢ ((fun x => x.snd / x.fst) ∘ fun t => (↑e t.fst, ↑e t.snd)) t = (↑e ∘ fun t => t.snd / t.fst) t

tactic: rw [← map_div e t.2 t.1]
state_before: case h
α : Type u_2
β : Type u_1
hom : Type u_3
inst✝⁵ : TopologicalSpace α
inst✝⁴ : Group α
inst✝³ : TopologicalGroup α
inst✝² : TopologicalSpace β
inst✝¹ : Group β
inst✝ : MonoidHomClass hom β α
e : hom
de : DenseInducing ↑e
x₀ : α
t : β × β
⊢ ↑e t.snd / ↑e t.fst = ↑e (t.snd / t.fst)

tactic: simpa using (continuous_div'.comp (@continuous_swap α α _ _)).tendsto (x₀, x₀)
state_before: α : Type u_2
β : Type u_1
hom : Type u_3
inst✝⁵ : TopologicalSpace α
inst✝⁴ : Group α
inst✝³ : TopologicalGroup α
inst✝² : TopologicalSpace β
inst✝¹ : Group β
inst✝ : MonoidHomClass hom β α
e : hom
de : DenseInducing ↑e
x₀ : α
comm : ((fun x => x.snd / x.fst) ∘ fun t => (↑e t.fst, ↑e t.snd)) = ↑e ∘ fun t => t.snd / t.fst
⊢ Tendsto (fun x => x.snd / x.fst) (𝓝 (x₀, x₀)) (𝓝 (↑e 1))