File: Mathlib/Topology/ContinuousFunction/CocompactMap.lean

full_name: CocompactMap.cocompact_tendsto'
code: /-- A *cocompact continuous map* is a continuous function between topological spaces which
tends to the cocompact filter along the cocompact filter. Functions for which preimages of compact
sets are compact always satisfy this property, and the converse holds for cocompact continuous maps
when the codomain is Hausdorff (see `CocompactMap.tendsto_of_forall_preimage` and
`CocompactMap.isCompact_preimage`).

Cocompact maps thus generalise proper maps, with which they correspond when the codomain is
Hausdorff. -/
structure CocompactMap (α : Type u) (β : Type v) [TopologicalSpace α] [TopologicalSpace β] extends
  ContinuousMap α β : Type max u v where
  /-- The cocompact filter on `α` tends to the cocompact filter on `β` under the function -/
  cocompact_tendsto' : Tendsto toFun (cocompact α) (cocompact β)
goal: Filter.Tendsto self.toFun (Filter.cocompact α) (Filter.cocompact β)

full_name: CocompactMap
code: /-- A *cocompact continuous map* is a continuous function between topological spaces which
tends to the cocompact filter along the cocompact filter. Functions for which preimages of compact
sets are compact always satisfy this property, and the converse holds for cocompact continuous maps
when the codomain is Hausdorff (see `CocompactMap.tendsto_of_forall_preimage` and
`CocompactMap.isCompact_preimage`).

Cocompact maps thus generalise proper maps, with which they correspond when the codomain is
Hausdorff. -/
structure CocompactMap (α : Type u) (β : Type v) [TopologicalSpace α] [TopologicalSpace β] extends
  ContinuousMap α β : Type max u v where
  /-- The cocompact filter on `α` tends to the cocompact filter on `β` under the function -/
  cocompact_tendsto' : Tendsto toFun (cocompact α) (cocompact β)
goal: Type (max u v)

full_name: CocompactMapClass
code: /-- `CocompactMapClass F α β` states that `F` is a type of cocompact continuous maps.

You should also extend this typeclass when you extend `CocompactMap`. -/
class CocompactMapClass (F : Type*) (α β : outParam Type*) [TopologicalSpace α]
  [TopologicalSpace β] [FunLike F α β] extends ContinuousMapClass F α β : Prop where
  /-- The cocompact filter on `α` tends to the cocompact filter on `β` under the function -/
  cocompact_tendsto (f : F) : Tendsto f (cocompact α) (cocompact β)
goal: Prop

full_name: CocompactMapClass.cocompact_tendsto
code: /-- `CocompactMapClass F α β` states that `F` is a type of cocompact continuous maps.

You should also extend this typeclass when you extend `CocompactMap`. -/
class CocompactMapClass (F : Type*) (α β : outParam Type*) [TopologicalSpace α]
  [TopologicalSpace β] [FunLike F α β] extends ContinuousMapClass F α β : Prop where
  /-- The cocompact filter on `α` tends to the cocompact filter on `β` under the function -/
  cocompact_tendsto (f : F) : Tendsto f (cocompact α) (cocompact β)
goal: Filter.Tendsto (⇑f) (Filter.cocompact α) (Filter.cocompact β)

full_name: CocompactMapClass.toCocompactMap
code: /-- Turn an element of a type `F` satisfying `CocompactMapClass F α β` into an actual
`CocompactMap`. This is declared as the default coercion from `F` to `CocompactMap α β`. -/
@[coe]
def toCocompactMap (f : F) : CocompactMap α β 
goal: CocompactMap α β

full_name: CocompactMapClass.instCoeTCCocompactMap
code: instance : CoeTC F (CocompactMap α β) 
goal: CoeTC F (CocompactMap α β)

full_name: CocompactMap.instFunLike
code: instance : FunLike (CocompactMap α β) α β 
goal: FunLike (CocompactMap α β) α β

full_name: CocompactMap.instCocompactMapClass
code: instance : CocompactMapClass (CocompactMap α β) α β 
goal: CocompactMapClass (CocompactMap α β) α β

full_name: CocompactMap.coe_toContinuousMap
code: @[simp]
theorem coe_toContinuousMap {f : CocompactMap α β} : (f.toContinuousMap : α → β) = f 
goal: ⇑f.toContinuousMap = ⇑f

full_name: CocompactMap.ext
code: @[ext]
theorem ext {f g : CocompactMap α β} (h : ∀ x, f x = g x) : f = g 
goal: f = g

full_name: CocompactMap.copy
code: /-- Copy of a `CocompactMap` with a new `toFun` equal to the old one. Useful
to fix definitional equalities. -/
protected def copy (f : CocompactMap α β) (f' : α → β) (h : f' = f) : CocompactMap α β 
goal: CocompactMap α β

full_name: CocompactMap.coe_copy
code: @[simp]
theorem coe_copy (f : CocompactMap α β) (f' : α → β) (h : f' = f) : ⇑(f.copy f' h) = f' 
goal: ⇑(f.copy f' h) = f'

full_name: CocompactMap.copy_eq
code: theorem copy_eq (f : CocompactMap α β) (f' : α → β) (h : f' = f) : f.copy f' h = f 
goal: f.copy f' h = f

full_name: CocompactMap.coe_mk
code: @[simp]
theorem coe_mk (f : C(α, β)) (h : Tendsto f (cocompact α) (cocompact β)) :
    ⇑(⟨f, h⟩ : CocompactMap α β) = f 
goal: ⇑{ toContinuousMap := f, cocompact_tendsto' := h } = ⇑f

full_name: CocompactMap.id
code: /-- The identity as a cocompact continuous map. -/
protected def id : CocompactMap α α 
goal: CocompactMap α α

full_name: CocompactMap.coe_id
code: @[simp]
theorem coe_id : ⇑(CocompactMap.id α) = id 
goal: ⇑(CocompactMap.id α) = id

full_name: CocompactMap.instInhabited
code: instance : Inhabited (CocompactMap α α) 
goal: Inhabited (CocompactMap α α)

full_name: CocompactMap.comp
code: /-- The composition of cocompact continuous maps, as a cocompact continuous map. -/
def comp (f : CocompactMap β γ) (g : CocompactMap α β) : CocompactMap α γ 
goal: CocompactMap α γ

full_name: CocompactMap.coe_comp
code: @[simp]
theorem coe_comp (f : CocompactMap β γ) (g : CocompactMap α β) : ⇑(comp f g) = f ∘ g 
goal: ⇑(f.comp g) = ⇑f ∘ ⇑g

full_name: CocompactMap.comp_apply
code: @[simp]
theorem comp_apply (f : CocompactMap β γ) (g : CocompactMap α β) (a : α) : comp f g a = f (g a) 
goal: (f.comp g) a = f (g a)

full_name: CocompactMap.comp_assoc
code: @[simp]
theorem comp_assoc (f : CocompactMap γ δ) (g : CocompactMap β γ) (h : CocompactMap α β) :
    (f.comp g).comp h = f.comp (g.comp h) 
goal: (f.comp g).comp h = f.comp (g.comp h)

full_name: CocompactMap.id_comp
code: @[simp]
theorem id_comp (f : CocompactMap α β) : (CocompactMap.id _).comp f = f 
goal: (CocompactMap.id β).comp f = f

full_name: CocompactMap.comp_id
code: @[simp]
theorem comp_id (f : CocompactMap α β) : f.comp (CocompactMap.id _) = f 
goal: f.comp (CocompactMap.id α) = f

full_name: CocompactMap.tendsto_of_forall_preimage
code: theorem tendsto_of_forall_preimage {f : α → β} (h : ∀ s, IsCompact s → IsCompact (f ⁻¹' s)) :
    Tendsto f (cocompact α) (cocompact β) 
goal: Filter.Tendsto f (Filter.cocompact α) (Filter.cocompact β)

full_name: CocompactMap.isCompact_preimage_of_isClosed
code: /-- Preimages of compact closed sets are compact under a cocompact continuous map. -/
theorem isCompact_preimage_of_isClosed (f : CocompactMap α β)
    ⦃s : Set β⦄ (hs : IsCompact s) (h's : IsClosed s) :
    IsCompact (f ⁻¹' s) 
goal: IsCompact (⇑f ⁻¹' s)

full_name: CocompactMap.isCompact_preimage
code: /-- If the codomain is Hausdorff, preimages of compact sets are compact under a cocompact
continuous map. -/
theorem isCompact_preimage [T2Space β] (f : CocompactMap α β) ⦃s : Set β⦄ (hs : IsCompact s) :
    IsCompact (f ⁻¹' s) 
goal: IsCompact (⇑f ⁻¹' s)

full_name: Homeomorph.toCocompactMap
code: /-- A homeomorphism is a cocompact map. -/
@[simps]
def Homeomorph.toCocompactMap {α β : Type*} [TopologicalSpace α] [TopologicalSpace β]
    (f : α ≃ₜ β) : CocompactMap α β 
goal: CocompactMap α β

full_name: Homeomorph.toCocompactMap_toFun
code: /-- A homeomorphism is a cocompact map. -/
@[simps]
def Homeomorph.toCocompactMap {α β : Type*} [TopologicalSpace α] [TopologicalSpace β]
    (f : α ≃ₜ β) : CocompactMap α β 
goal: f.toCocompactMap a = f a