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 : (nhds 0).HasBasis (fun (x : π•œ) => 0 < x) fun (Ξ΅ : π•œ) => {x : R | 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.

@[instance 100]
instance LinearOrderedField.topologicalRing {π•œ : Type u_1} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] :
Equations
  • β‹― = β‹―
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.

@[simp]
theorem inv_atTopβ‚€ {π•œ : Type u_1} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] :
Filter.atTop⁻¹ = nhdsWithin 0 (Set.Ioi 0)
@[simp]
theorem inv_nhdsWithin_Ioi_zero {π•œ : Type u_1} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] :
(nhdsWithin 0 (Set.Ioi 0))⁻¹ = 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 bdd_le_mul_tendsto_zero' {π•œ : Type u_1} {Ξ± : Type u_2} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {l : Filter Ξ±} {f : Ξ± β†’ π•œ} {g : Ξ± β†’ π•œ} (C : π•œ) (hf : βˆ€αΆ  (x : Ξ±) in l, |f x| ≀ C) (hg : Filter.Tendsto g l (nhds 0)) :
Filter.Tendsto (fun (x : Ξ±) => f x * g x) l (nhds 0)

If g tends to zero and there exists a constant C : π•œ such that eventually |f x| ≀ C, then the product f * g tends to zero.

theorem bdd_le_mul_tendsto_zero {π•œ : Type u_1} {Ξ± : Type u_2} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {l : Filter Ξ±} {f : Ξ± β†’ π•œ} {g : Ξ± β†’ π•œ} {b : π•œ} {B : π•œ} (hb : βˆ€αΆ  (x : Ξ±) in l, b ≀ f x) (hB : βˆ€αΆ  (x : Ξ±) in l, f x ≀ B) (hg : Filter.Tendsto g l (nhds 0)) :
Filter.Tendsto (fun (x : Ξ±) => f x * g x) l (nhds 0)

If g tends to zero and there exist constants b B : π•œ such that eventually b ≀ f x| ≀ B, then the product f * g tends to zero.

theorem tendsto_bdd_div_atTop_nhds_zero {π•œ : Type u_1} {Ξ± : Type u_2} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {l : Filter Ξ±} {f : Ξ± β†’ π•œ} {g : Ξ± β†’ π•œ} {b : π•œ} {B : π•œ} (hb : βˆ€αΆ  (x : Ξ±) in l, b ≀ f x) (hB : βˆ€αΆ  (x : Ξ±) in l, f x ≀ B) (hg : Filter.Tendsto g l Filter.atTop) :
Filter.Tendsto (fun (x : Ξ±) => f x / g x) l (nhds 0)

If g tends to atTop and there exist constants b B : π•œ such that eventually b ≀ f x| ≀ B, then the quotient f / g tends to zero.

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
@[instance 100]
Equations
  • β‹― = β‹―
@[instance 100]
Equations
  • β‹― = β‹―
theorem nhdsWithin_pos_comap_mul_left {π•œ : Type u_1} [LinearOrderedField π•œ] [TopologicalSpace π•œ] [OrderTopology π•œ] {x : π•œ} (hx : 0 < x) :
Filter.comap (fun (x_1 : π•œ) => x * x_1) (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 * Ξ΅)