File: Mathlib/Dynamics/Flow.lean

full_name: IsInvariant
code: /-- A set `s ⊆ α` is invariant under `ϕ : τ → α → α` if
    `ϕ t s ⊆ s` for all `t` in `τ`. -/
def IsInvariant (ϕ : τ → α → α) (s : Set α) : Prop 
goal: Prop

full_name: isInvariant_iff_image
code: theorem isInvariant_iff_image : IsInvariant ϕ s ↔ ∀ t, ϕ t '' s ⊆ s 
goal: IsInvariant ϕ s ↔ ∀ (t : τ), ϕ t '' s ⊆ s

full_name: IsFwInvariant
code: /-- A set `s ⊆ α` is forward-invariant under `ϕ : τ → α → α` if
    `ϕ t s ⊆ s` for all `t ≥ 0`. -/
def IsFwInvariant [Preorder τ] [Zero τ] (ϕ : τ → α → α) (s : Set α) : Prop 
goal: Prop

full_name: IsInvariant.isFwInvariant
code: theorem IsInvariant.isFwInvariant [Preorder τ] [Zero τ] {ϕ : τ → α → α} {s : Set α}
    (h : IsInvariant ϕ s) : IsFwInvariant ϕ s 
goal: IsFwInvariant ϕ s

full_name: IsFwInvariant.isInvariant
code: /-- If `τ` is a `CanonicallyOrderedAddCommMonoid` (e.g., `ℕ` or `ℝ≥0`), then the notions
`IsFwInvariant` and `IsInvariant` are equivalent. -/
theorem IsFwInvariant.isInvariant [CanonicallyOrderedAddCommMonoid τ] {ϕ : τ → α → α} {s : Set α}
    (h : IsFwInvariant ϕ s) : IsInvariant ϕ s 
goal: IsInvariant ϕ s

full_name: isFwInvariant_iff_isInvariant
code: /-- If `τ` is a `CanonicallyOrderedAddCommMonoid` (e.g., `ℕ` or `ℝ≥0`), then the notions
`IsFwInvariant` and `IsInvariant` are equivalent. -/
theorem isFwInvariant_iff_isInvariant [CanonicallyOrderedAddCommMonoid τ] {ϕ : τ → α → α}
    {s : Set α} :
    IsFwInvariant ϕ s ↔ IsInvariant ϕ s 
goal: IsFwInvariant ϕ s ↔ IsInvariant ϕ s

full_name: Flow
code: /-- A flow on a topological space `α` by an additive topological
    monoid `τ` is a continuous monoid action of `τ` on `α`. -/
structure Flow (τ : Type*) [TopologicalSpace τ] [AddMonoid τ] [ContinuousAdd τ] (α : Type*)
  [TopologicalSpace α] where
  /-- The map `τ → α → α` underlying a flow of `τ` on `α`. -/
  toFun : τ → α → α
  cont' : Continuous (uncurry toFun)
  map_add' : ∀ t₁ t₂ x, toFun (t₁ + t₂) x = toFun t₁ (toFun t₂ x)
  map_zero' : ∀ x, toFun 0 x = x
goal: Type (max u_1 u_2)

full_name: Flow.cont'
code: /-- A flow on a topological space `α` by an additive topological
    monoid `τ` is a continuous monoid action of `τ` on `α`. -/
structure Flow (τ : Type*) [TopologicalSpace τ] [AddMonoid τ] [ContinuousAdd τ] (α : Type*)
  [TopologicalSpace α] where
  /-- The map `τ → α → α` underlying a flow of `τ` on `α`. -/
  toFun : τ → α → α
  cont' : Continuous (uncurry toFun)
  map_add' : ∀ t₁ t₂ x, toFun (t₁ + t₂) x = toFun t₁ (toFun t₂ x)
  map_zero' : ∀ x, toFun 0 x = x
goal: Continuous (Function.uncurry self.toFun)

full_name: Flow.toFun
code: /-- A flow on a topological space `α` by an additive topological
    monoid `τ` is a continuous monoid action of `τ` on `α`. -/
structure Flow (τ : Type*) [TopologicalSpace τ] [AddMonoid τ] [ContinuousAdd τ] (α : Type*)
  [TopologicalSpace α] where
  /-- The map `τ → α → α` underlying a flow of `τ` on `α`. -/
  toFun : τ → α → α
  cont' : Continuous (uncurry toFun)
  map_add' : ∀ t₁ t₂ x, toFun (t₁ + t₂) x = toFun t₁ (toFun t₂ x)
  map_zero' : ∀ x, toFun 0 x = x
goal: τ → α → α

full_name: Flow.map_add'
code: /-- A flow on a topological space `α` by an additive topological
    monoid `τ` is a continuous monoid action of `τ` on `α`. -/
structure Flow (τ : Type*) [TopologicalSpace τ] [AddMonoid τ] [ContinuousAdd τ] (α : Type*)
  [TopologicalSpace α] where
  /-- The map `τ → α → α` underlying a flow of `τ` on `α`. -/
  toFun : τ → α → α
  cont' : Continuous (uncurry toFun)
  map_add' : ∀ t₁ t₂ x, toFun (t₁ + t₂) x = toFun t₁ (toFun t₂ x)
  map_zero' : ∀ x, toFun 0 x = x
goal: self.toFun (t₁ + t₂) x = self.toFun t₁ (self.toFun t₂ x)

full_name: Flow.map_zero'
code: /-- A flow on a topological space `α` by an additive topological
    monoid `τ` is a continuous monoid action of `τ` on `α`. -/
structure Flow (τ : Type*) [TopologicalSpace τ] [AddMonoid τ] [ContinuousAdd τ] (α : Type*)
  [TopologicalSpace α] where
  /-- The map `τ → α → α` underlying a flow of `τ` on `α`. -/
  toFun : τ → α → α
  cont' : Continuous (uncurry toFun)
  map_add' : ∀ t₁ t₂ x, toFun (t₁ + t₂) x = toFun t₁ (toFun t₂ x)
  map_zero' : ∀ x, toFun 0 x = x
goal: self.toFun 0 x = x

full_name: Flow.instInhabited
code: instance : Inhabited (Flow τ α) 
goal: Inhabited (Flow τ α)

full_name: Flow.instCoeFunForallForall
code: instance : CoeFun (Flow τ α) fun _ => τ → α → α 
goal: CoeFun (Flow τ α) fun x => τ → α → α

full_name: Flow.ext
code: @[ext]
theorem ext : ∀ {ϕ₁ ϕ₂ : Flow τ α}, (∀ t x, ϕ₁ t x = ϕ₂ t x) → ϕ₁ = ϕ₂
  
goal: (∀ (t : τ) (x : α), ϕ₁.toFun t x = ϕ₂.toFun t x) → ϕ₁ = ϕ₂

full_name: Flow.continuous
code: @[continuity, fun_prop]
protected theorem continuous {β : Type*} [TopologicalSpace β] {t : β → τ} (ht : Continuous t)
    {f : β → α} (hf : Continuous f) : Continuous fun x => ϕ (t x) (f x) 
goal: Continuous fun x => ϕ.toFun (t x) (f x)

full_name: Flow.map_add
code: theorem map_add (t₁ t₂ : τ) (x : α) : ϕ (t₁ + t₂) x = ϕ t₁ (ϕ t₂ x) 
goal: ϕ.toFun (t₁ + t₂) x = ϕ.toFun t₁ (ϕ.toFun t₂ x)

full_name: Flow.map_zero
code: @[simp]
theorem map_zero : ϕ 0 = id 
goal: ϕ.toFun 0 = id

full_name: Flow.map_zero_apply
code: theorem map_zero_apply (x : α) : ϕ 0 x = x 
goal: ϕ.toFun 0 x = x

full_name: Flow.fromIter
code: /-- Iterations of a continuous function from a topological space `α`
    to itself defines a semiflow by `ℕ` on `α`. -/
def fromIter {g : α → α} (h : Continuous g) : Flow ℕ α 
goal: Flow ℕ α

full_name: Flow.restrict
code: /-- Restriction of a flow onto an invariant set. -/
def restrict {s : Set α} (h : IsInvariant ϕ s) : Flow τ (↥s) 
goal: Flow τ ↑s

full_name: Flow.isInvariant_iff_image_eq
code: theorem isInvariant_iff_image_eq (s : Set α) : IsInvariant ϕ s ↔ ∀ t, ϕ t '' s = s 
goal: IsInvariant ϕ.toFun s ↔ ∀ (t : τ), ϕ.toFun t '' s = s

full_name: Flow.reverse
code: /-- The time-reversal of a flow `ϕ` by a (commutative, additive) group
    is defined `ϕ.reverse t x = ϕ (-t) x`. -/
def reverse : Flow τ α 
goal: Flow τ α

full_name: Flow.continuous_toFun
code: @[continuity]
theorem continuous_toFun (t : τ) : Continuous (ϕ.toFun t) 
goal: Continuous (ϕ.toFun t)

full_name: Flow.toHomeomorph
code: /-- The map `ϕ t` as a homeomorphism. -/
def toHomeomorph (t : τ) : (α ≃ₜ α) 
goal: α ≃ₜ α

full_name: Flow.image_eq_preimage
code: theorem image_eq_preimage (t : τ) (s : Set α) : ϕ t '' s = ϕ (-t) ⁻¹' s 
goal: ϕ.toFun t '' s = ϕ.toFun (-t) ⁻¹' s