Documentation

Mathlib.Topology.Algebra.Order.Field

Topologies on linear ordered fields #

In this file we prove that a linear ordered field with order topology has continuous multiplication and division (apart from zero in the denominator). We also prove theorems like Filter.Tendsto.mul_atTop: if f tends to a positive number and g tends to positive infinity, then f * g tends to positive infinity.

theorem TopologicalRing.of_norm {R : Type u_1} {π•œ : Type u_2} [NonUnitalNonAssocRing R] [LinearOrderedField π•œ] [TopologicalSpace R] [TopologicalAddGroup R] (norm : R β†’ π•œ) (norm_nonneg : βˆ€ (x : R), 0 ≀ norm x) (norm_mul_le : βˆ€ (x y : R), norm (x * y) ≀ norm x * norm y) (nhds_basis : Filter.HasBasis (nhds 0) (fun x => 0 < x) fun Ξ΅ => {x | norm x < Ξ΅}) :

If a (possibly non-unital and/or non-associative) ring R admits a submultiplicative nonnegative norm norm : R β†’ π•œ, where π•œ is a linear ordered field, and the open balls { x | norm x < Ξ΅ }, Ξ΅ > 0, form a basis of neighborhoods of zero, then R is a topological ring.

theorem Filter.Tendsto.atTop_mul {π•œ : Type u_1} {Ξ± : Type u_2} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {l : Filter Ξ±} {f : Ξ± β†’ π•œ} {g : Ξ± β†’ π•œ} {C : π•œ} (hC : 0 < C) (hf : Filter.Tendsto f l Filter.atTop) (hg : Filter.Tendsto g l (nhds C)) :
Filter.Tendsto (fun x => f x * g x) l Filter.atTop

In a linearly ordered field with the order topology, if f tends to Filter.atTop and g tends to a positive constant C then f * g tends to Filter.atTop.

theorem Filter.Tendsto.mul_atTop {π•œ : Type u_1} {Ξ± : Type u_2} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {l : Filter Ξ±} {f : Ξ± β†’ π•œ} {g : Ξ± β†’ π•œ} {C : π•œ} (hC : 0 < C) (hf : Filter.Tendsto f l (nhds C)) (hg : Filter.Tendsto g l Filter.atTop) :
Filter.Tendsto (fun x => f x * g x) l Filter.atTop

In a linearly ordered field with the order topology, if f tends to a positive constant C and g tends to Filter.atTop then f * g tends to Filter.atTop.

theorem Filter.Tendsto.atTop_mul_neg {π•œ : Type u_1} {Ξ± : Type u_2} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {l : Filter Ξ±} {f : Ξ± β†’ π•œ} {g : Ξ± β†’ π•œ} {C : π•œ} (hC : C < 0) (hf : Filter.Tendsto f l Filter.atTop) (hg : Filter.Tendsto g l (nhds C)) :
Filter.Tendsto (fun x => f x * g x) l Filter.atBot

In a linearly ordered field with the order topology, if f tends to Filter.atTop and g tends to a negative constant C then f * g tends to Filter.atBot.

theorem Filter.Tendsto.neg_mul_atTop {π•œ : Type u_1} {Ξ± : Type u_2} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {l : Filter Ξ±} {f : Ξ± β†’ π•œ} {g : Ξ± β†’ π•œ} {C : π•œ} (hC : C < 0) (hf : Filter.Tendsto f l (nhds C)) (hg : Filter.Tendsto g l Filter.atTop) :
Filter.Tendsto (fun x => f x * g x) l Filter.atBot

In a linearly ordered field with the order topology, if f tends to a negative constant C and g tends to Filter.atTop then f * g tends to Filter.atBot.

theorem Filter.Tendsto.atBot_mul {π•œ : Type u_1} {Ξ± : Type u_2} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {l : Filter Ξ±} {f : Ξ± β†’ π•œ} {g : Ξ± β†’ π•œ} {C : π•œ} (hC : 0 < C) (hf : Filter.Tendsto f l Filter.atBot) (hg : Filter.Tendsto g l (nhds C)) :
Filter.Tendsto (fun x => f x * g x) l Filter.atBot

In a linearly ordered field with the order topology, if f tends to Filter.atBot and g tends to a positive constant C then f * g tends to Filter.atBot.

theorem Filter.Tendsto.atBot_mul_neg {π•œ : Type u_1} {Ξ± : Type u_2} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {l : Filter Ξ±} {f : Ξ± β†’ π•œ} {g : Ξ± β†’ π•œ} {C : π•œ} (hC : C < 0) (hf : Filter.Tendsto f l Filter.atBot) (hg : Filter.Tendsto g l (nhds C)) :
Filter.Tendsto (fun x => f x * g x) l Filter.atTop

In a linearly ordered field with the order topology, if f tends to Filter.atBot and g tends to a negative constant C then f * g tends to Filter.atTop.

theorem Filter.Tendsto.mul_atBot {π•œ : Type u_1} {Ξ± : Type u_2} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {l : Filter Ξ±} {f : Ξ± β†’ π•œ} {g : Ξ± β†’ π•œ} {C : π•œ} (hC : 0 < C) (hf : Filter.Tendsto f l (nhds C)) (hg : Filter.Tendsto g l Filter.atBot) :
Filter.Tendsto (fun x => f x * g x) l Filter.atBot

In a linearly ordered field with the order topology, if f tends to a positive constant C and g tends to Filter.atBot then f * g tends to Filter.atBot.

theorem Filter.Tendsto.neg_mul_atBot {π•œ : Type u_1} {Ξ± : Type u_2} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {l : Filter Ξ±} {f : Ξ± β†’ π•œ} {g : Ξ± β†’ π•œ} {C : π•œ} (hC : C < 0) (hf : Filter.Tendsto f l (nhds C)) (hg : Filter.Tendsto g l Filter.atBot) :
Filter.Tendsto (fun x => f x * g x) l Filter.atTop

In a linearly ordered field with the order topology, if f tends to a negative constant C and g tends to Filter.atBot then f * g tends to Filter.atTop.

theorem tendsto_inv_zero_atTop {π•œ : Type u_1} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] :
Filter.Tendsto (fun x => x⁻¹) (nhdsWithin 0 (Set.Ioi 0)) Filter.atTop

The function x ↦ x⁻¹ tends to +∞ on the right of 0.

theorem tendsto_inv_atTop_zero' {π•œ : Type u_1} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] :
Filter.Tendsto (fun r => r⁻¹) Filter.atTop (nhdsWithin 0 (Set.Ioi 0))

The function r ↦ r⁻¹ tends to 0 on the right as r β†’ +∞.

theorem tendsto_inv_atTop_zero {π•œ : Type u_1} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] :
Filter.Tendsto (fun r => r⁻¹) Filter.atTop (nhds 0)
theorem Filter.Tendsto.div_atTop {π•œ : Type u_1} {Ξ± : Type u_2} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {l : Filter Ξ±} {f : Ξ± β†’ π•œ} {g : Ξ± β†’ π•œ} {a : π•œ} (h : Filter.Tendsto f l (nhds a)) (hg : Filter.Tendsto g l Filter.atTop) :
Filter.Tendsto (fun x => f x / g x) l (nhds 0)
theorem Filter.Tendsto.inv_tendsto_atTop {π•œ : Type u_1} {Ξ± : Type u_2} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {l : Filter Ξ±} {f : Ξ± β†’ π•œ} (h : Filter.Tendsto f l Filter.atTop) :
theorem Filter.Tendsto.inv_tendsto_zero {π•œ : Type u_1} {Ξ± : Type u_2} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {l : Filter Ξ±} {f : Ξ± β†’ π•œ} (h : Filter.Tendsto f l (nhdsWithin 0 (Set.Ioi 0))) :
Filter.Tendsto f⁻¹ l Filter.atTop
theorem tendsto_pow_neg_atTop {π•œ : Type u_1} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {n : β„•} (hn : n β‰  0) :
Filter.Tendsto (fun x => x ^ (-↑n)) Filter.atTop (nhds 0)

The function x^(-n) tends to 0 at +∞ for any positive natural n. A version for positive real powers exists as tendsto_rpow_neg_atTop.

theorem tendsto_zpow_atTop_zero {π•œ : Type u_1} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {n : β„€} (hn : n < 0) :
Filter.Tendsto (fun x => x ^ n) Filter.atTop (nhds 0)
theorem tendsto_const_mul_zpow_atTop_zero {π•œ : Type u_1} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {n : β„€} {c : π•œ} (hn : n < 0) :
Filter.Tendsto (fun x => c * x ^ n) Filter.atTop (nhds 0)
theorem tendsto_const_mul_pow_nhds_iff' {π•œ : Type u_1} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {n : β„•} {c : π•œ} {d : π•œ} :
Filter.Tendsto (fun x => c * x ^ n) Filter.atTop (nhds d) ↔ (c = 0 ∨ n = 0) ∧ c = d
theorem tendsto_const_mul_pow_nhds_iff {π•œ : Type u_1} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {n : β„•} {c : π•œ} {d : π•œ} (hc : c β‰  0) :
Filter.Tendsto (fun x => c * x ^ n) Filter.atTop (nhds d) ↔ n = 0 ∧ c = d
theorem tendsto_const_mul_zpow_atTop_nhds_iff {π•œ : Type u_1} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {n : β„€} {c : π•œ} {d : π•œ} (hc : c β‰  0) :
Filter.Tendsto (fun x => c * x ^ n) Filter.atTop (nhds d) ↔ n = 0 ∧ c = d ∨ n < 0 ∧ d = 0
theorem nhdsWithin_pos_comap_mul_left {π•œ : Type u_1} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {x : π•œ} (hx : 0 < x) :
Filter.comap (fun x => x * x) (nhdsWithin 0 (Set.Ioi 0)) = nhdsWithin 0 (Set.Ioi 0)
theorem eventually_nhdsWithin_pos_mul_left {π•œ : Type u_1} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {x : π•œ} (hx : 0 < x) {p : π•œ β†’ Prop} (h : βˆ€αΆ  (Ξ΅ : π•œ) in nhdsWithin 0 (Set.Ioi 0), p Ξ΅) :
βˆ€αΆ  (Ξ΅ : π•œ) in nhdsWithin 0 (Set.Ioi 0), p (x * Ξ΅)