# mathlibdocumentation

topology.algebra.group_with_zero

# Topological group with zero

In this file we define has_continuous_inv' to be a mixin typeclass a type with has_inv and has_zero (e.g., a group_with_zero) such that λ x, x⁻¹ is continuous at all nonzero points. Any normed (semi)field has this property. Currently the only example of has_continuous_inv' in mathlib which is not a normed field is the type nnnreal (a.k.a. ℝ≥0) of nonnegative real numbers.

Then we prove lemmas about continuity of x ↦ x⁻¹ and f / g providing dot-style *.inv' and *.div operations on filter.tendsto, continuous_at, continuous_within_at, continuous_on, and continuous. As a special case, we provide *.div_const operations that require only group_with_zero and has_continuous_mul instances.

All lemmas about (⁻¹) use inv' in their names because lemmas without ' are used for topological_groups. We also use ' in the typeclass name has_continuous_inv' for the sake of consistency of notation.

### A group with zero with continuous multiplication

If G₀ is a group with zero with continuous (*), then (/y) is continuous for any y. In this section we prove lemmas that immediately follow from this fact providing *.div_const dot-style operations on filter.tendsto, continuous_at, continuous_within_at, continuous_on, and continuous.

theorem filter.tendsto.div_const {α : Type u_1} {G₀ : Type u_2} [group_with_zero G₀] {f : α → G₀} {l : filter α} {x y : G₀} (hf : (𝓝 x)) :
filter.tendsto (λ (a : α), f a / y) l (𝓝 (x / y))

theorem continuous_at.div_const {α : Type u_1} {G₀ : Type u_2} [group_with_zero G₀] {f : α → G₀} (hf : continuous f) {y : G₀} :
continuous (λ (x : α), f x / y)

theorem continuous_within_at.div_const {α : Type u_1} {G₀ : Type u_2} [group_with_zero G₀] {f : α → G₀} {s : set α} {a : α} (hf : a) {y : G₀} :
continuous_within_at (λ (x : α), f x / y) s a

theorem continuous_on.div_const {α : Type u_1} {G₀ : Type u_2} [group_with_zero G₀] {f : α → G₀} {s : set α} (hf : s) {y : G₀} :
continuous_on (λ (x : α), f x / y) s

theorem continuous.div_const {α : Type u_1} {G₀ : Type u_2} [group_with_zero G₀] {f : α → G₀} (hf : continuous f) {y : G₀} :
continuous (λ (x : α), f x / y)

@[class]
structure has_continuous_inv' (G₀ : Type u_3) [has_zero G₀] [has_inv G₀]  :
Type
• continuous_at_inv' : ∀ ⦃x : G₀⦄, x 0

A type with 0 and has_inv such that λ x, x⁻¹ is continuous at all nonzero points. Any normed (semi)field has this property.

Instances

### Continuity of λ x, x⁻¹ at a non-zero point

We define topological_group_with_zero to be a group_with_zero such that the operation x ↦ x⁻¹ is continuous at all nonzero points. In this section we prove dot-style *.inv' lemmas for filter.tendsto, continuous_at, continuous_within_at, continuous_on, and continuous.

theorem tendsto_inv' {G₀ : Type u_2} [has_zero G₀] [has_inv G₀] {x : G₀} (hx : x 0) :

theorem continuous_on_inv' {G₀ : Type u_2} [has_zero G₀] [has_inv G₀]  :

theorem filter.tendsto.inv' {α : Type u_1} {G₀ : Type u_2} [has_zero G₀] [has_inv G₀] {l : filter α} {f : α → G₀} {a : G₀} (hf : (𝓝 a)) (ha : a 0) :
filter.tendsto (λ (x : α), (f x)⁻¹) l (𝓝 a⁻¹)

If a function converges to a nonzero value, its inverse converges to the inverse of this value. We use the name tendsto.inv' as tendsto.inv is already used in multiplicative topological groups.

theorem continuous_within_at.inv' {α : Type u_1} {G₀ : Type u_2} [has_zero G₀] [has_inv G₀] {f : α → G₀} {s : set α} {a : α} (hf : a) (ha : f a 0) :
continuous_within_at (λ (x : α), (f x)⁻¹) s a

theorem continuous_at.inv' {α : Type u_1} {G₀ : Type u_2} [has_zero G₀] [has_inv G₀] {f : α → G₀} {a : α} (hf : a) (ha : f a 0) :
continuous_at (λ (x : α), (f x)⁻¹) a

theorem continuous.inv' {α : Type u_1} {G₀ : Type u_2} [has_zero G₀] [has_inv G₀] {f : α → G₀} (hf : continuous f) (h0 : ∀ (x : α), f x 0) :
continuous (λ (x : α), (f x)⁻¹)

theorem continuous_on.inv' {α : Type u_1} {G₀ : Type u_2} [has_zero G₀] [has_inv G₀] {f : α → G₀} {s : set α} (hf : s) (h0 : ∀ (x : α), x sf x 0) :
continuous_on (λ (x : α), (f x)⁻¹) s

### Continuity of division

If G₀ is a group_with_zero with x ↦ x⁻¹ continuous at all nonzero points and (*), then division (/) is continuous at any point where the denominator is continuous.

theorem filter.tendsto.div {α : Type u_1} {G₀ : Type u_2} [group_with_zero G₀] {f g : α → G₀} {l : filter α} {a b : G₀} (hf : (𝓝 a)) (hg : (𝓝 b)) (hy : b 0) :
filter.tendsto (f / g) l (𝓝 (a / b))

theorem continuous_within_at.div {α : Type u_1} {G₀ : Type u_2} [group_with_zero G₀] {f g : α → G₀} {s : set α} {a : α} (hf : a) (hg : a) (h₀ : g a 0) :

theorem continuous_on.div {α : Type u_1} {G₀ : Type u_2} [group_with_zero G₀] {f g : α → G₀} {s : set α} (hf : s) (hg : s) (h₀ : ∀ (x : α), x sg x 0) :

theorem continuous_at.div {α : Type u_1} {G₀ : Type u_2} [group_with_zero G₀] {f g : α → G₀} {a : α} (hf : a) (hg : a) (h₀ : g a 0) :

Continuity at a point of the result of dividing two functions continuous at that point, where the denominator is nonzero.

theorem continuous.div {α : Type u_1} {G₀ : Type u_2} [group_with_zero G₀] {f g : α → G₀} (hf : continuous f) (hg : continuous g) (h₀ : ∀ (x : α), g x 0) :

theorem continuous_on_div {G₀ : Type u_2} [group_with_zero G₀]  :
continuous_on (λ (p : G₀ × G₀), p.fst / p.snd) {p : G₀ × G₀ | p.snd 0}