Documentation

Mathlib.Order.Filter.Interval

Convergence of intervals #

If both a and b tend to some filter l₁, sometimes this implies that Ixx a b tends to l₂.smallSets, i.e., for any s ∈ l₂ eventually Ixx a b becomes a subset of s. Here and below Ixx is one of Set.Icc, Set.Ico, Set.Ioc, and Set.Ioo. We define Filter.TendstoIxxClass Ixx l₁ l₂ to be a typeclass representing this property.

The instances provide the best l₂ for a given l₁. In many cases l₁ = l₂ but sometimes we can drop an endpoint from an interval: e.g., we prove Filter.TendstoIxxClass Set.Ico (𝓟 (Set.Iic a)) (𝓟 (Set.Iio a)), i.e., if u₁ n and u₂ n belong eventually to Set.Iic a, then the interval Set.Ico (u₁ n) (u₂ n) is eventually included in Set.Iio a.

The next table shows “output” filters l₂ for different values of Ixx and l₁. The instances that need topology are defined in Mathlib/Topology/Algebra/Ordered.

| Input filter | Ixx = Set.Icc | Ixx = Set.Ico | Ixx = Set.Ioc | Ixx = Set.Ioo | |-----------------:|:----------------:|:----------------:|:----------------:|:----------------:| | Filter.atTop | Filter.atTop | Filter.atTop | Filter.atTop | Filter.atTop | | Filter.atBot | Filter.atBot | Filter.atBot | Filter.atBot | Filter.atBot | | pure a | pure a | | | | | 𝓟 (Set.Iic a) | 𝓟 (Set.Iic a) | 𝓟 (Set.Iio a) | 𝓟 (Set.Iic a) | 𝓟 (Set.Iio a) | | 𝓟 (Set.Ici a) | 𝓟 (Set.Ici a) | 𝓟 (Set.Ici a) | 𝓟 (Set.Ioi a) | 𝓟 (Set.Ioi a) | | 𝓟 (Set.Ioi a) | 𝓟 (Set.Ioi a) | 𝓟 (Set.Ioi a) | 𝓟 (Set.Ioi a) | 𝓟 (Set.Ioi a) | | 𝓟 (Set.Iio a) | 𝓟 (Set.Iio a) | 𝓟 (Set.Iio a) | 𝓟 (Set.Iio a) | 𝓟 (Set.Iio a) | | 𝓝 a | 𝓝 a | 𝓝 a | 𝓝 a | 𝓝 a | | 𝓝[Set.Iic a] b | 𝓝[Set.Iic a] b | 𝓝[Set.Iio a] b | 𝓝[Set.Iic a] b | 𝓝[Set.Iio a] b | | 𝓝[Set.Ici a] b | 𝓝[Set.Ici a] b | 𝓝[Set.Ici a] b | 𝓝[Set.Ioi a] b | 𝓝[Set.Ioi a] b | | 𝓝[Set.Ioi a] b | 𝓝[Set.Ioi a] b | 𝓝[Set.Ioi a] b | 𝓝[Set.Ioi a] b | 𝓝[Set.Ioi a] b | | 𝓝[Set.Iio a] b | 𝓝[Set.Iio a] b | 𝓝[Set.Iio a] b | 𝓝[Set.Iio a] b | 𝓝[Set.Iio a] b |

class Filter.TendstoIxxClass {α : Type u_1} (Ixx : ααSet α) (l₁ : Filter α) (l₂ : outParam (Filter α)) :

A pair of filters l₁, l₂ has TendstoIxxClass Ixx property if Ixx a b tends to l₂.small_sets as a and b tend to l₁. In all instances Ixx is one of Set.Icc, Set.Ico, Set.Ioc, or Set.Ioo. The instances provide the best l₂ for a given l₁. In many cases l₁ = l₂ but sometimes we can drop an endpoint from an interval: e.g., we prove TendstoIxxClass Set.Ico (𝓟 (Set.Iic a)) (𝓟 (Set.Iio a)), i.e., if u₁ n and u₂ n belong eventually to Set.Iic a, then the interval Set.Ico (u₁ n) (u₂ n) is eventually included in Set.Iio a.

We mark l₂ as an outParam so that Lean can automatically find an appropriate l₂ based on Ixx and l₁. This way, e.g., tendsto.Ico h₁ h₂ works without specifying explicitly l₂.

Instances
    theorem Filter.Tendsto.Icc {α : Type u_1} {β : Type u_2} [Preorder α] {l₁ : Filter α} {l₂ : Filter α} [Filter.TendstoIxxClass Set.Icc l₁ l₂] {lb : Filter β} {u₁ : βα} {u₂ : βα} (h₁ : Filter.Tendsto u₁ lb l₁) (h₂ : Filter.Tendsto u₂ lb l₁) :
    Filter.Tendsto (fun x => Set.Icc (u₁ x) (u₂ x)) lb (Filter.smallSets l₂)
    theorem Filter.Tendsto.Ioc {α : Type u_1} {β : Type u_2} [Preorder α] {l₁ : Filter α} {l₂ : Filter α} [Filter.TendstoIxxClass Set.Ioc l₁ l₂] {lb : Filter β} {u₁ : βα} {u₂ : βα} (h₁ : Filter.Tendsto u₁ lb l₁) (h₂ : Filter.Tendsto u₂ lb l₁) :
    Filter.Tendsto (fun x => Set.Ioc (u₁ x) (u₂ x)) lb (Filter.smallSets l₂)
    theorem Filter.Tendsto.Ico {α : Type u_1} {β : Type u_2} [Preorder α] {l₁ : Filter α} {l₂ : Filter α} [Filter.TendstoIxxClass Set.Ico l₁ l₂] {lb : Filter β} {u₁ : βα} {u₂ : βα} (h₁ : Filter.Tendsto u₁ lb l₁) (h₂ : Filter.Tendsto u₂ lb l₁) :
    Filter.Tendsto (fun x => Set.Ico (u₁ x) (u₂ x)) lb (Filter.smallSets l₂)
    theorem Filter.Tendsto.Ioo {α : Type u_1} {β : Type u_2} [Preorder α] {l₁ : Filter α} {l₂ : Filter α} [Filter.TendstoIxxClass Set.Ioo l₁ l₂] {lb : Filter β} {u₁ : βα} {u₂ : βα} (h₁ : Filter.Tendsto u₁ lb l₁) (h₂ : Filter.Tendsto u₂ lb l₁) :
    Filter.Tendsto (fun x => Set.Ioo (u₁ x) (u₂ x)) lb (Filter.smallSets l₂)
    theorem Filter.tendstoIxxClass_principal {α : Type u_1} {s : Set α} {t : Set α} {Ixx : ααSet α} :
    Filter.TendstoIxxClass Ixx (Filter.principal s) (Filter.principal t) ∀ (x : α), x s∀ (y : α), y sIxx x y t
    theorem Filter.tendstoIxxClass_inf {α : Type u_1} {l₁ : Filter α} {l₁' : Filter α} {l₂ : Filter α} {l₂' : Filter α} {Ixx : ααSet α} [h : Filter.TendstoIxxClass Ixx l₁ l₂] [h' : Filter.TendstoIxxClass Ixx l₁' l₂'] :
    Filter.TendstoIxxClass Ixx (l₁ l₁') (l₂ l₂')
    theorem Filter.tendstoIxxClass_of_subset {α : Type u_1} {l₁ : Filter α} {l₂ : Filter α} {Ixx : ααSet α} {Ixx' : ααSet α} (h : ∀ (a b : α), Ixx a b Ixx' a b) [h' : Filter.TendstoIxxClass Ixx' l₁ l₂] :
    theorem Filter.HasBasis.tendstoIxxClass {α : Type u_1} {ι : Type u_3} {p : ιProp} {s : ιSet α} {l : Filter α} (hl : Filter.HasBasis l p s) {Ixx : ααSet α} (H : ∀ (i : ι), p i∀ (x : α), x s i∀ (y : α), y s iIxx x y s i) :
    theorem Filter.Tendsto.uIcc {α : Type u_1} {β : Type u_2} [LinearOrder α] {l : Filter α} [Filter.TendstoIxxClass Set.Icc l l] {f : βα} {g : βα} {lb : Filter β} (hf : Filter.Tendsto f lb l) (hg : Filter.Tendsto g lb l) :
    Filter.Tendsto (fun x => Set.uIcc (f x) (g x)) lb (Filter.smallSets l)