File: Mathlib/Dynamics/OmegaLimit.lean

full_name: omegaLimit
code: /-- The ω-limit of a set `s` under `ϕ` with respect to a filter `f` is `⋂ u ∈ f, cl (ϕ u s)`. -/
def omegaLimit [TopologicalSpace β] (f : Filter τ) (ϕ : τ → α → β) (s : Set α) : Set β 
goal: Set β

full_name: omegaLimit._aux_Mathlib_Dynamics_OmegaLimit___unexpand_omegaLimit_1
code: @[inherit_doc]
scoped[omegaLimit] notation "ω" => omegaLimit
goal: Lean.PrettyPrinter.Unexpander

full_name: omegaLimit._aux_Mathlib_Dynamics_OmegaLimit___macroRules_omegaLimit_termω_1
code: @[inherit_doc]
scoped[omegaLimit] notation "ω" => omegaLimit
goal: Lean.Macro

full_name: omegaLimit._aux_Mathlib_Dynamics_OmegaLimit___unexpand_omegaLimit_2
code: /-- The ω-limit w.r.t. `Filter.atTop`. -/
scoped[omegaLimit] notation "ω⁺" => omegaLimit Filter.atTop
goal: Lean.PrettyPrinter.Unexpander

full_name: omegaLimit.«_aux_Mathlib_Dynamics_OmegaLimit___macroRules_omegaLimit_termω⁺_1»
code: /-- The ω-limit w.r.t. `Filter.atTop`. -/
scoped[omegaLimit] notation "ω⁺" => omegaLimit Filter.atTop
goal: Lean.Macro

full_name: omegaLimit._aux_Mathlib_Dynamics_OmegaLimit___unexpand_omegaLimit_3
code: /-- The ω-limit w.r.t. `Filter.atBot`. -/
scoped[omegaLimit] notation "ω⁻" => omegaLimit Filter.atBot
goal: Lean.PrettyPrinter.Unexpander

full_name: omegaLimit.«_aux_Mathlib_Dynamics_OmegaLimit___macroRules_omegaLimit_termω⁻_1»
code: /-- The ω-limit w.r.t. `Filter.atBot`. -/
scoped[omegaLimit] notation "ω⁻" => omegaLimit Filter.atBot
goal: Lean.Macro

full_name: omegaLimit_def
code: theorem omegaLimit_def : ω f ϕ s = ⋂ u ∈ f, closure (image2 ϕ u s) 
goal: omegaLimit f ϕ s = ⋂ u ∈ f, closure (Set.image2 ϕ u s)

full_name: omegaLimit_subset_of_tendsto
code: theorem omegaLimit_subset_of_tendsto {m : τ → τ} {f₁ f₂ : Filter τ} (hf : Tendsto m f₁ f₂) :
    ω f₁ (fun t x ↦ ϕ (m t) x) s ⊆ ω f₂ ϕ s 
goal: omegaLimit f₁ (fun t x => ϕ (m t) x) s ⊆ omegaLimit f₂ ϕ s

full_name: omegaLimit_mono_left
code: theorem omegaLimit_mono_left {f₁ f₂ : Filter τ} (hf : f₁ ≤ f₂) : ω f₁ ϕ s ⊆ ω f₂ ϕ s 
goal: omegaLimit f₁ ϕ s ⊆ omegaLimit f₂ ϕ s

full_name: omegaLimit_mono_right
code: theorem omegaLimit_mono_right {s₁ s₂ : Set α} (hs : s₁ ⊆ s₂) : ω f ϕ s₁ ⊆ ω f ϕ s₂ 
goal: omegaLimit f ϕ s₁ ⊆ omegaLimit f ϕ s₂

full_name: isClosed_omegaLimit
code: theorem isClosed_omegaLimit : IsClosed (ω f ϕ s) 
goal: IsClosed (omegaLimit f ϕ s)

full_name: mapsTo_omegaLimit'
code: theorem mapsTo_omegaLimit' {α' β' : Type*} [TopologicalSpace β'] {f : Filter τ} {ϕ : τ → α → β}
    {ϕ' : τ → α' → β'} {ga : α → α'} {s' : Set α'} (hs : MapsTo ga s s') {gb : β → β'}
    (hg : ∀ᶠ t in f, EqOn (gb ∘ ϕ t) (ϕ' t ∘ ga) s) (hgc : Continuous gb) :
    MapsTo gb (ω f ϕ s) (ω f ϕ' s') 
goal: Set.MapsTo gb (omegaLimit f ϕ s) (omegaLimit f ϕ' s')

full_name: mapsTo_omegaLimit
code: theorem mapsTo_omegaLimit {α' β' : Type*} [TopologicalSpace β'] {f : Filter τ} {ϕ : τ → α → β}
    {ϕ' : τ → α' → β'} {ga : α → α'} {s' : Set α'} (hs : MapsTo ga s s') {gb : β → β'}
    (hg : ∀ t x, gb (ϕ t x) = ϕ' t (ga x)) (hgc : Continuous gb) :
    MapsTo gb (ω f ϕ s) (ω f ϕ' s') 
goal: Set.MapsTo gb (omegaLimit f ϕ s) (omegaLimit f ϕ' s')

full_name: omegaLimit_image_eq
code: theorem omegaLimit_image_eq {α' : Type*} (ϕ : τ → α' → β) (f : Filter τ) (g : α → α') :
    ω f ϕ (g '' s) = ω f (fun t x ↦ ϕ t (g x)) s 
goal: omegaLimit f ϕ (g '' s) = omegaLimit f (fun t x => ϕ t (g x)) s

full_name: omegaLimit_preimage_subset
code: theorem omegaLimit_preimage_subset {α' : Type*} (ϕ : τ → α' → β) (s : Set α') (f : Filter τ)
    (g : α → α') : ω f (fun t x ↦ ϕ t (g x)) (g ⁻¹' s) ⊆ ω f ϕ s 
goal: omegaLimit f (fun t x => ϕ t (g x)) (g ⁻¹' s) ⊆ omegaLimit f ϕ s

full_name: mem_omegaLimit_iff_frequently
code: /-- 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 (y : β) :
    y ∈ ω f ϕ s ↔ ∀ n ∈ 𝓝 y, ∃ᶠ t in f, (s ∩ ϕ t ⁻¹' n).Nonempty 
goal: y ∈ omegaLimit f ϕ s ↔ ∀ n ∈ 𝓝 y, ∃ᶠ (t : τ) in f, (s ∩ ϕ t ⁻¹' n).Nonempty

full_name: mem_omegaLimit_iff_frequently₂
code: /-- 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_iff_frequently₂ (y : β) :
    y ∈ ω f ϕ s ↔ ∀ n ∈ 𝓝 y, ∃ᶠ t in f, (ϕ t '' s ∩ n).Nonempty 
goal: y ∈ omegaLimit f ϕ s ↔ ∀ n ∈ 𝓝 y, ∃ᶠ (t : τ) in f, (ϕ t '' s ∩ n).Nonempty

full_name: mem_omegaLimit_singleton_iff_map_cluster_point
code: /-- 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`. -/
theorem mem_omegaLimit_singleton_iff_map_cluster_point (x : α) (y : β) :
    y ∈ ω f ϕ {x} ↔ MapClusterPt y f fun t ↦ ϕ t x 
goal: y ∈ omegaLimit f ϕ {x} ↔ MapClusterPt y f fun t => ϕ t x

full_name: omegaLimit_inter
code: theorem omegaLimit_inter : ω f ϕ (s₁ ∩ s₂) ⊆ ω f ϕ s₁ ∩ ω f ϕ s₂ 
goal: omegaLimit f ϕ (s₁ ∩ s₂) ⊆ omegaLimit f ϕ s₁ ∩ omegaLimit f ϕ s₂

full_name: omegaLimit_iInter
code: theorem omegaLimit_iInter (p : ι → Set α) : ω f ϕ (⋂ i, p i) ⊆ ⋂ i, ω f ϕ (p i) 
goal: omegaLimit f ϕ (⋂ i, p i) ⊆ ⋂ i, omegaLimit f ϕ (p i)

full_name: omegaLimit_union
code: theorem omegaLimit_union : ω f ϕ (s₁ ∪ s₂) = ω f ϕ s₁ ∪ ω f ϕ s₂ 
goal: omegaLimit f ϕ (s₁ ∪ s₂) = omegaLimit f ϕ s₁ ∪ omegaLimit f ϕ s₂

full_name: omegaLimit_iUnion
code: theorem omegaLimit_iUnion (p : ι → Set α) : ⋃ i, ω f ϕ (p i) ⊆ ω f ϕ (⋃ i, p i) 
goal: ⋃ i, omegaLimit f ϕ (p i) ⊆ omegaLimit f ϕ (⋃ i, p i)

full_name: omegaLimit_eq_iInter
code: theorem omegaLimit_eq_iInter : ω f ϕ s = ⋂ u : ↥f.sets, closure (image2 ϕ u s) 
goal: omegaLimit f ϕ s = ⋂ u, closure (Set.image2 ϕ (↑u) s)

full_name: omegaLimit_eq_biInter_inter
code: theorem omegaLimit_eq_biInter_inter {v : Set τ} (hv : v ∈ f) :
    ω f ϕ s = ⋂ u ∈ f, closure (image2 ϕ (u ∩ v) s) 
goal: omegaLimit f ϕ s = ⋂ u ∈ f, closure (Set.image2 ϕ (u ∩ v) s)

full_name: omegaLimit_eq_iInter_inter
code: theorem omegaLimit_eq_iInter_inter {v : Set τ} (hv : v ∈ f) :
    ω f ϕ s = ⋂ u : ↥f.sets, closure (image2 ϕ (u ∩ v) s) 
goal: omegaLimit f ϕ s = ⋂ u, closure (Set.image2 ϕ (↑u ∩ v) s)

full_name: omegaLimit_subset_closure_fw_image
code: theorem omegaLimit_subset_closure_fw_image {u : Set τ} (hu : u ∈ f) :
    ω f ϕ s ⊆ closure (image2 ϕ u s) 
goal: omegaLimit f ϕ s ⊆ closure (Set.image2 ϕ u s)

full_name: eventually_closure_subset_of_isCompact_absorbing_of_isOpen_of_omegaLimit_subset'
code: /-- 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' {c : Set β}
    (hc₁ : IsCompact c) (hc₂ : ∃ v ∈ f, closure (image2 ϕ v s) ⊆ c) {n : Set β} (hn₁ : IsOpen n)
    (hn₂ : ω f ϕ s ⊆ n) : ∃ u ∈ f, closure (image2 ϕ u s) ⊆ n 
goal: ∃ u ∈ f, closure (Set.image2 ϕ u s) ⊆ n

full_name: eventually_closure_subset_of_isCompact_absorbing_of_isOpen_of_omegaLimit_subset
code: /-- 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 [T2Space β]
    {c : Set β} (hc₁ : IsCompact c) (hc₂ : ∀ᶠ t in f, MapsTo (ϕ t) s c) {n : Set β} (hn₁ : IsOpen n)
    (hn₂ : ω f ϕ s ⊆ n) : ∃ u ∈ f, closure (image2 ϕ u s) ⊆ n 
goal: ∃ u ∈ f, closure (Set.image2 ϕ u s) ⊆ n

full_name: eventually_mapsTo_of_isCompact_absorbing_of_isOpen_of_omegaLimit_subset
code: theorem eventually_mapsTo_of_isCompact_absorbing_of_isOpen_of_omegaLimit_subset [T2Space β]
    {c : Set β} (hc₁ : IsCompact c) (hc₂ : ∀ᶠ t in f, MapsTo (ϕ t) s c) {n : Set β} (hn₁ : IsOpen n)
    (hn₂ : ω f ϕ s ⊆ n) : ∀ᶠ t in f, MapsTo (ϕ t) s n 
goal: ∀ᶠ (t : τ) in f, Set.MapsTo (ϕ t) s n

full_name: eventually_closure_subset_of_isOpen_of_omegaLimit_subset
code: theorem eventually_closure_subset_of_isOpen_of_omegaLimit_subset [CompactSpace β] {v : Set β}
    (hv₁ : IsOpen v) (hv₂ : ω f ϕ s ⊆ v) : ∃ u ∈ f, closure (image2 ϕ u s) ⊆ v 
goal: ∃ u ∈ f, closure (Set.image2 ϕ u s) ⊆ v

full_name: eventually_mapsTo_of_isOpen_of_omegaLimit_subset
code: theorem eventually_mapsTo_of_isOpen_of_omegaLimit_subset [CompactSpace β] {v : Set β}
    (hv₁ : IsOpen v) (hv₂ : ω f ϕ s ⊆ v) : ∀ᶠ t in f, MapsTo (ϕ t) s v 
goal: ∀ᶠ (t : τ) in f, Set.MapsTo (ϕ t) s v

full_name: nonempty_omegaLimit_of_isCompact_absorbing
code: /-- The ω-limit of a nonempty set w.r.t. a nontrivial filter is nonempty. -/
theorem nonempty_omegaLimit_of_isCompact_absorbing [NeBot f] {c : Set β} (hc₁ : IsCompact c)
    (hc₂ : ∃ v ∈ f, closure (image2 ϕ v s) ⊆ c) (hs : s.Nonempty) : (ω f ϕ s).Nonempty 
goal: (omegaLimit f ϕ s).Nonempty

full_name: nonempty_omegaLimit
code: theorem nonempty_omegaLimit [CompactSpace β] [NeBot f] (hs : s.Nonempty) : (ω f ϕ s).Nonempty 
goal: (omegaLimit f ϕ s).Nonempty

full_name: Flow.isInvariant_omegaLimit
code: theorem isInvariant_omegaLimit (hf : ∀ t, Tendsto (t + ·) f f) : IsInvariant ϕ (ω f ϕ s) 
goal: IsInvariant ϕ.toFun (omegaLimit f ϕ.toFun s)

full_name: Flow.omegaLimit_image_subset
code: theorem omegaLimit_image_subset (t : τ) (ht : Tendsto (· + t) f f) :
    ω f ϕ (ϕ t '' s) ⊆ ω f ϕ s 
goal: omegaLimit f ϕ.toFun (ϕ.toFun t '' s) ⊆ omegaLimit f ϕ.toFun s

full_name: Flow.omegaLimit_image_eq
code: /-- the ω-limit of a forward image of `s` is the same as the ω-limit of `s`. -/
@[simp]
theorem omegaLimit_image_eq (hf : ∀ t, Tendsto (· + t) f f) (t : τ) : ω f ϕ (ϕ t '' s) = ω f ϕ s 
goal: omegaLimit f ϕ.toFun (ϕ.toFun t '' s) = omegaLimit f ϕ.toFun s

full_name: Flow.omegaLimit_omegaLimit
code: theorem omegaLimit_omegaLimit (hf : ∀ t, Tendsto (t + ·) f f) : ω f ϕ (ω f ϕ s) ⊆ ω f ϕ s 
goal: omegaLimit f ϕ.toFun (omegaLimit f ϕ.toFun s) ⊆ omegaLimit f ϕ.toFun s