Skip to content

Commit f0c0e38

Browse files
feat(Topology/Algebra/Group/Basic): add eq_of_tendsto_div_nhds_one (leanprover-community#41230)
Adds `tendsto_div_nhds_one_iff_eq` to `Topology.Algebra.Group.Basic`, next to `tendsto_div_nhds_one_iff`: for functions into a Hausdorff topological group, if `f → a` and `g → b` along a nontrivial filter, then `f / g → 1` if and only if `a = b`. The implication `eq_of_tendsto_div_nhds_one` is kept as an `alias`, and the additive versions are generated by `@[to_additive]`. Also adds the `GroupWithZero`/`ContinuousInv₀` variant `tendsto_div_nhds_one_iff_eq₀` (assuming `b ≠ 0`), with its implication alias `eq_of_tendsto_div_nhds_one₀`, in `Topology.Algebra.GroupWithZero`.
1 parent 5b213d3 commit f0c0e38

2 files changed

Lines changed: 24 additions & 0 deletions

File tree

Mathlib/Topology/Algebra/Group/Basic.lean

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1104,6 +1104,18 @@ theorem tendsto_div_nhds_one_iff {α : Type*} {l : Filter α} {x : G} {u : α
11041104
haveI A : Tendsto (fun _ : α => x) l (𝓝 x) := tendsto_const_nhds
11051105
fun h => by simpa using h.mul A, fun h => by simpa using h.div' A⟩
11061106

1107+
/-- If `f → a` and `g → b` along a nontrivial filter on the domain, valued in a
1108+
Hausdorff topological group, then `f / g → 1` if and only if `a = b`. -/
1109+
@[to_additive]
1110+
theorem tendsto_div_nhds_one_iff_eq {α : Type*} {l : Filter α} [l.NeBot] [T2Space G]
1111+
{f g : α → G} {a b : G} (hf : Tendsto f l (𝓝 a)) (hg : Tendsto g l (𝓝 b)) :
1112+
Tendsto (fun x ↦ f x / g x) l (𝓝 1) ↔ a = b :=
1113+
fun hfg => tendsto_nhds_unique hf <| by simpa using hfg.mul hg,
1114+
fun h => by subst h; simpa using hf.div' hg⟩
1115+
1116+
@[to_additive]
1117+
alias ⟨eq_of_tendsto_div_nhds_one, _⟩ := tendsto_div_nhds_one_iff_eq
1118+
11071119
@[to_additive]
11081120
theorem nhds_translation_div (x : G) : comap (· / x) (𝓝 1) = 𝓝 x := by
11091121
simpa only [div_eq_mul_inv] using nhds_translation_mul_inv x

Mathlib/Topology/Algebra/GroupWithZero.lean

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,18 @@ theorem Filter.Tendsto.div {l : Filter α} {a b : G₀} (hf : Tendsto f l (𝓝
192192
(hg : Tendsto g l (𝓝 b)) (hy : b ≠ 0) : Tendsto (f / g) l (𝓝 (a / b)) := by
193193
simpa only [div_eq_mul_inv] using! hf.mul (hg.inv₀ hy)
194194

195+
/-- If `f → a` and `g → b` along a nontrivial filter, valued in a Hausdorff
196+
`GroupWithZero` with continuous multiplication and `ContinuousInv₀`, and `b ≠ 0`,
197+
then `f / g → 1` if and only if `a = b`. -/
198+
theorem tendsto_div_nhds_one_iff_eq₀
199+
{l : Filter α} [l.NeBot] [T2Space G₀] {a b : G₀}
200+
(hf : Tendsto f l (𝓝 a)) (hg : Tendsto g l (𝓝 b)) (hb : b ≠ 0) :
201+
Tendsto (fun x ↦ f x / g x) l (𝓝 1) ↔ a = b :=
202+
fun hfg => (div_eq_one_iff_eq hb).mp (tendsto_nhds_unique (hf.div hg hb) hfg),
203+
fun hab => (div_eq_one_iff_eq hb).mpr hab ▸ hf.div hg hb⟩
204+
205+
alias ⟨eq_of_tendsto_div_nhds_one₀, _⟩ := tendsto_div_nhds_one_iff_eq₀
206+
195207
theorem Filter.tendsto_mul_iff_of_ne_zero [T1Space G₀] {f g : α → G₀} {l : Filter α} {x y : G₀}
196208
(hg : Tendsto g l (𝓝 y)) (hy : y ≠ 0) :
197209
Tendsto (fun n => f n * g n) l (𝓝 <| x * y) ↔ Tendsto f l (𝓝 x) := by

0 commit comments

Comments
 (0)