# Documentation

Mathlib.Dynamics.OmegaLimit

# ω-limits #

For a function ϕ : τ → α → β where β is a topological space, we define the ω-limit under ϕ of a set s in α with respect to filter f on τ: an element y : β is in the ω-limit of s if the forward images of s intersect arbitrarily small neighbourhoods of y frequently "in the direction of f".

In practice ϕ is often a continuous monoid-act, but the definition requires only that ϕ has a coercion to the appropriate function type. In the case where τ is ℕ or ℝ and f is atTop, we recover the usual definition of the ω-limit set as the set of all y such that there exist sequences (tₙ), (xₙ) such that ϕ tₙ xₙ ⟶ y as n ⟶ ∞.

## Notations #

The omegaLimit locale provides the localised notation ω for omegaLimit, as well as ω⁺ and ω⁻ for omegaLimit atTop and omegaLimit atBot respectively for when the acting monoid is endowed with an order.

### Definition and notation #

def omegaLimit {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (f : ) (ϕ : ταβ) (s : Set α) :
Set β

The ω-limit of a set s under ϕ with respect to a filter f is ⋂ u ∈ f, cl (ϕ u s).

Instances For
Instances For
Instances For
Instances For

### Elementary properties #

theorem omegaLimit_def {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (f : ) (ϕ : ταβ) (s : Set α) :
omegaLimit f ϕ s = ⋂ (u : Set τ) (_ : u f), closure (Set.image2 ϕ u s)
theorem omegaLimit_subset_of_tendsto {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (ϕ : ταβ) (s : Set α) {m : ττ} {f₁ : } {f₂ : } (hf : Filter.Tendsto m f₁ f₂) :
omegaLimit f₁ (fun t x => ϕ (m t) x) s omegaLimit f₂ ϕ s
theorem omegaLimit_mono_left {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (ϕ : ταβ) (s : Set α) {f₁ : } {f₂ : } (hf : f₁ f₂) :
omegaLimit f₁ ϕ s omegaLimit f₂ ϕ s
theorem omegaLimit_mono_right {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (f : ) (ϕ : ταβ) {s₁ : Set α} {s₂ : Set α} (hs : s₁ s₂) :
omegaLimit f ϕ s₁ omegaLimit f ϕ s₂
theorem isClosed_omegaLimit {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (f : ) (ϕ : ταβ) (s : Set α) :
theorem mapsTo_omegaLimit' {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (s : Set α) {α' : Type u_5} {β' : Type u_6} [] {f : } {ϕ : ταβ} {ϕ' : τα'β'} {ga : αα'} {s' : Set α'} (hs : Set.MapsTo ga s s') {gb : ββ'} (hg : ∀ᶠ (t : τ) in f, Set.EqOn (gb ϕ t) (ϕ' t ga) s) (hgc : ) :
Set.MapsTo gb (omegaLimit f ϕ s) (omegaLimit f ϕ' s')
theorem mapsTo_omegaLimit {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (s : Set α) {α' : Type u_5} {β' : Type u_6} [] {f : } {ϕ : ταβ} {ϕ' : τα'β'} {ga : αα'} {s' : Set α'} (hs : Set.MapsTo ga s s') {gb : ββ'} (hg : ∀ (t : τ) (x : α), gb (ϕ t x) = ϕ' t (ga x)) (hgc : ) :
Set.MapsTo gb (omegaLimit f ϕ s) (omegaLimit f ϕ' s')
theorem omegaLimit_image_eq {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (s : Set α) {α' : Type u_5} (ϕ : τα'β) (f : ) (g : αα') :
omegaLimit f ϕ (g '' s) = omegaLimit f (fun t x => ϕ t (g x)) s
theorem omegaLimit_preimage_subset {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] {α' : Type u_5} (ϕ : τα'β) (s : Set α') (f : ) (g : αα') :
omegaLimit f (fun t x => ϕ t (g x)) (g ⁻¹' s) omegaLimit f ϕ s

### Equivalent definitions of the omega limit #

The next few lemmas are various versions of the property characterising ω-limits:

theorem mem_omegaLimit_iff_frequently {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (f : ) (ϕ : ταβ) (s : Set α) (y : β) :
y omegaLimit f ϕ s ∀ (n : Set β), n nhds y∃ᶠ (t : τ) in f, Set.Nonempty (s ϕ t ⁻¹' n)

An element y is in the ω-limit set of s w.r.t. f if the preimages of an arbitrary neighbourhood of y frequently (w.r.t. f) intersects of s.

theorem mem_omegaLimit_iff_frequently₂ {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (f : ) (ϕ : ταβ) (s : Set α) (y : β) :
y omegaLimit f ϕ s ∀ (n : Set β), n nhds y∃ᶠ (t : τ) in f, Set.Nonempty (ϕ t '' s n)

An element y is in the ω-limit set of s w.r.t. f if the forward images of s frequently (w.r.t. f) intersect arbitrary neighbourhoods of y.

theorem mem_omegaLimit_singleton_iff_map_cluster_point {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (f : ) (ϕ : ταβ) (x : α) (y : β) :
y omegaLimit f ϕ {x} MapClusterPt y f fun t => ϕ t x

An element y is in the ω-limit of x w.r.t. f if the forward images of x frequently (w.r.t. f) falls within an arbitrary neighbourhood of y.

### Set operations and omega limits #

theorem omegaLimit_inter {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (f : ) (ϕ : ταβ) (s₁ : Set α) (s₂ : Set α) :
omegaLimit f ϕ (s₁ s₂) omegaLimit f ϕ s₁ omegaLimit f ϕ s₂
theorem omegaLimit_iInter {τ : Type u_1} {α : Type u_2} {β : Type u_3} {ι : Type u_4} [] (f : ) (ϕ : ταβ) (p : ιSet α) :
omegaLimit f ϕ (⋂ (i : ι), p i) ⋂ (i : ι), omegaLimit f ϕ (p i)
theorem omegaLimit_union {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (f : ) (ϕ : ταβ) (s₁ : Set α) (s₂ : Set α) :
omegaLimit f ϕ (s₁ s₂) = omegaLimit f ϕ s₁ omegaLimit f ϕ s₂
theorem omegaLimit_iUnion {τ : Type u_1} {α : Type u_2} {β : Type u_3} {ι : Type u_4} [] (f : ) (ϕ : ταβ) (p : ιSet α) :
⋃ (i : ι), omegaLimit f ϕ (p i) omegaLimit f ϕ (⋃ (i : ι), p i)

Different expressions for omega limits, useful for rewrites. In particular, one may restrict the intersection to sets in f which are subsets of some set v also in f.

theorem omegaLimit_eq_iInter {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (f : ) (ϕ : ταβ) (s : Set α) :
omegaLimit f ϕ s = ⋂ (u : f.sets), closure (Set.image2 ϕ (u) s)
theorem omegaLimit_eq_biInter_inter {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (f : ) (ϕ : ταβ) (s : Set α) {v : Set τ} (hv : v f) :
omegaLimit f ϕ s = ⋂ (u : Set τ) (_ : u f), closure (Set.image2 ϕ (u v) s)
theorem omegaLimit_eq_iInter_inter {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (f : ) (ϕ : ταβ) (s : Set α) {v : Set τ} (hv : v f) :
omegaLimit f ϕ s = ⋂ (u : f.sets), closure (Set.image2 ϕ (u v) s)
theorem omegaLimit_subset_closure_fw_image {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (f : ) (ϕ : ταβ) (s : Set α) {u : Set τ} (hu : u f) :

### ω-limits and compactness #

theorem eventually_closure_subset_of_isCompact_absorbing_of_isOpen_of_omegaLimit_subset' {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (f : ) (ϕ : ταβ) (s : Set α) {c : Set β} (hc₁ : ) (hc₂ : v, v f closure (Set.image2 ϕ v s) c) {n : Set β} (hn₁ : ) (hn₂ : omegaLimit f ϕ s n) :
u, u f closure (Set.image2 ϕ u s) n

A set is eventually carried into any open neighbourhood of its ω-limit: if c is a compact set such that closure {ϕ t x | t ∈ v, x ∈ s} ⊆ c for some v ∈ f and n is an open neighbourhood of ω f ϕ s, then for some u ∈ f we have closure {ϕ t x | t ∈ u, x ∈ s} ⊆ n.

theorem eventually_closure_subset_of_isCompact_absorbing_of_isOpen_of_omegaLimit_subset {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (f : ) (ϕ : ταβ) (s : Set α) [] {c : Set β} (hc₁ : ) (hc₂ : ∀ᶠ (t : τ) in f, Set.MapsTo (ϕ t) s c) {n : Set β} (hn₁ : ) (hn₂ : omegaLimit f ϕ s n) :
u, u f closure (Set.image2 ϕ u s) n

A set is eventually carried into any open neighbourhood of its ω-limit: if c is a compact set such that closure {ϕ t x | t ∈ v, x ∈ s} ⊆ c for some v ∈ f and n is an open neighbourhood of ω f ϕ s, then for some u ∈ f we have closure {ϕ t x | t ∈ u, x ∈ s} ⊆ n.

theorem eventually_mapsTo_of_isCompact_absorbing_of_isOpen_of_omegaLimit_subset {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (f : ) (ϕ : ταβ) (s : Set α) [] {c : Set β} (hc₁ : ) (hc₂ : ∀ᶠ (t : τ) in f, Set.MapsTo (ϕ t) s c) {n : Set β} (hn₁ : ) (hn₂ : omegaLimit f ϕ s n) :
∀ᶠ (t : τ) in f, Set.MapsTo (ϕ t) s n
theorem eventually_closure_subset_of_isOpen_of_omegaLimit_subset {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (f : ) (ϕ : ταβ) (s : Set α) [] {v : Set β} (hv₁ : ) (hv₂ : omegaLimit f ϕ s v) :
u, u f closure (Set.image2 ϕ u s) v
theorem eventually_mapsTo_of_isOpen_of_omegaLimit_subset {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (f : ) (ϕ : ταβ) (s : Set α) [] {v : Set β} (hv₁ : ) (hv₂ : omegaLimit f ϕ s v) :
∀ᶠ (t : τ) in f, Set.MapsTo (ϕ t) s v
theorem nonempty_omegaLimit_of_isCompact_absorbing {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (f : ) (ϕ : ταβ) (s : Set α) [] {c : Set β} (hc₁ : ) (hc₂ : v, v f closure (Set.image2 ϕ v s) c) (hs : ) :

The ω-limit of a nonempty set w.r.t. a nontrivial filter is nonempty.

theorem nonempty_omegaLimit {τ : Type u_1} {α : Type u_2} {β : Type u_3} [] (f : ) (ϕ : ταβ) (s : Set α) [] [] (hs : ) :

### ω-limits of Flows by a Monoid #

theorem Flow.isInvariant_omegaLimit {τ : Type u_1} [] [] [] {α : Type u_2} [] (f : ) (ϕ : Flow τ α) (s : Set α) (hf : ∀ (t : τ), Filter.Tendsto ((fun x x_1 => x + x_1) t) f f) :
IsInvariant ϕ.toFun (omegaLimit f ϕ.toFun s)
theorem Flow.omegaLimit_image_subset {τ : Type u_1} [] [] [] {α : Type u_2} [] (f : ) (ϕ : Flow τ α) (s : Set α) (t : τ) (ht : Filter.Tendsto (fun x => x + t) f f) :
omegaLimit f ϕ.toFun ( '' s) omegaLimit f ϕ.toFun s

### ω-limits of Flows by a Group #

@[simp]
theorem Flow.omegaLimit_image_eq {τ : Type u_1} [] [] {α : Type u_2} [] (f : ) (ϕ : Flow τ α) (s : Set α) (hf : ∀ (t : τ), Filter.Tendsto (fun x => x + t) f f) (t : τ) :
omegaLimit f ϕ.toFun ( '' s) = omegaLimit f ϕ.toFun s

the ω-limit of a forward image of s is the same as the ω-limit of s.

theorem Flow.omegaLimit_omegaLimit {τ : Type u_1} [] [] {α : Type u_2} [] (f : ) (ϕ : Flow τ α) (s : Set α) (hf : ∀ (t : τ), Filter.Tendsto ((fun x x_1 => x + x_1) t) f f) :
omegaLimit f ϕ.toFun (omegaLimit f ϕ.toFun s) omegaLimit f ϕ.toFun s