File: Mathlib/Topology/UniformSpace/AbstractCompletion.lean

full_name: AbstractCompletion.uniformInducing
code: /-- A completion of `α` is the data of a complete separated uniform space (from the same universe)
and a map from `α` with dense range and inducing the original uniform structure on `α`. -/
structure AbstractCompletion (α : Type u) [UniformSpace α] where
  /-- The underlying space of the completion. -/
  space : Type u
  /-- A map from a space to its completion. -/
  coe : α → space
  /-- The completion carries a uniform structure. -/
  uniformStruct : UniformSpace space
  /-- The completion is complete. -/
  complete : CompleteSpace space
  /-- The completion is a T₀ space. -/
  separation : T0Space space
  /-- The map into the completion is uniform-inducing. -/
  uniformInducing : UniformInducing coe
  /-- The map into the completion has dense range. -/
  dense : DenseRange coe
goal: UniformInducing self.coe

full_name: AbstractCompletion.complete
code: /-- A completion of `α` is the data of a complete separated uniform space (from the same universe)
and a map from `α` with dense range and inducing the original uniform structure on `α`. -/
structure AbstractCompletion (α : Type u) [UniformSpace α] where
  /-- The underlying space of the completion. -/
  space : Type u
  /-- A map from a space to its completion. -/
  coe : α → space
  /-- The completion carries a uniform structure. -/
  uniformStruct : UniformSpace space
  /-- The completion is complete. -/
  complete : CompleteSpace space
  /-- The completion is a T₀ space. -/
  separation : T0Space space
  /-- The map into the completion is uniform-inducing. -/
  uniformInducing : UniformInducing coe
  /-- The map into the completion has dense range. -/
  dense : DenseRange coe
goal: CompleteSpace self.space

full_name: AbstractCompletion.space
code: /-- A completion of `α` is the data of a complete separated uniform space (from the same universe)
and a map from `α` with dense range and inducing the original uniform structure on `α`. -/
structure AbstractCompletion (α : Type u) [UniformSpace α] where
  /-- The underlying space of the completion. -/
  space : Type u
  /-- A map from a space to its completion. -/
  coe : α → space
  /-- The completion carries a uniform structure. -/
  uniformStruct : UniformSpace space
  /-- The completion is complete. -/
  complete : CompleteSpace space
  /-- The completion is a T₀ space. -/
  separation : T0Space space
  /-- The map into the completion is uniform-inducing. -/
  uniformInducing : UniformInducing coe
  /-- The map into the completion has dense range. -/
  dense : DenseRange coe
goal: Type u

full_name: AbstractCompletion.uniformStruct
code: /-- A completion of `α` is the data of a complete separated uniform space (from the same universe)
and a map from `α` with dense range and inducing the original uniform structure on `α`. -/
structure AbstractCompletion (α : Type u) [UniformSpace α] where
  /-- The underlying space of the completion. -/
  space : Type u
  /-- A map from a space to its completion. -/
  coe : α → space
  /-- The completion carries a uniform structure. -/
  uniformStruct : UniformSpace space
  /-- The completion is complete. -/
  complete : CompleteSpace space
  /-- The completion is a T₀ space. -/
  separation : T0Space space
  /-- The map into the completion is uniform-inducing. -/
  uniformInducing : UniformInducing coe
  /-- The map into the completion has dense range. -/
  dense : DenseRange coe
goal: UniformSpace self.space

full_name: AbstractCompletion.dense
code: /-- A completion of `α` is the data of a complete separated uniform space (from the same universe)
and a map from `α` with dense range and inducing the original uniform structure on `α`. -/
structure AbstractCompletion (α : Type u) [UniformSpace α] where
  /-- The underlying space of the completion. -/
  space : Type u
  /-- A map from a space to its completion. -/
  coe : α → space
  /-- The completion carries a uniform structure. -/
  uniformStruct : UniformSpace space
  /-- The completion is complete. -/
  complete : CompleteSpace space
  /-- The completion is a T₀ space. -/
  separation : T0Space space
  /-- The map into the completion is uniform-inducing. -/
  uniformInducing : UniformInducing coe
  /-- The map into the completion has dense range. -/
  dense : DenseRange coe
goal: DenseRange self.coe

full_name: AbstractCompletion
code: /-- A completion of `α` is the data of a complete separated uniform space (from the same universe)
and a map from `α` with dense range and inducing the original uniform structure on `α`. -/
structure AbstractCompletion (α : Type u) [UniformSpace α] where
  /-- The underlying space of the completion. -/
  space : Type u
  /-- A map from a space to its completion. -/
  coe : α → space
  /-- The completion carries a uniform structure. -/
  uniformStruct : UniformSpace space
  /-- The completion is complete. -/
  complete : CompleteSpace space
  /-- The completion is a T₀ space. -/
  separation : T0Space space
  /-- The map into the completion is uniform-inducing. -/
  uniformInducing : UniformInducing coe
  /-- The map into the completion has dense range. -/
  dense : DenseRange coe
goal: Type (u + 1)

full_name: AbstractCompletion.separation
code: /-- A completion of `α` is the data of a complete separated uniform space (from the same universe)
and a map from `α` with dense range and inducing the original uniform structure on `α`. -/
structure AbstractCompletion (α : Type u) [UniformSpace α] where
  /-- The underlying space of the completion. -/
  space : Type u
  /-- A map from a space to its completion. -/
  coe : α → space
  /-- The completion carries a uniform structure. -/
  uniformStruct : UniformSpace space
  /-- The completion is complete. -/
  complete : CompleteSpace space
  /-- The completion is a T₀ space. -/
  separation : T0Space space
  /-- The map into the completion is uniform-inducing. -/
  uniformInducing : UniformInducing coe
  /-- The map into the completion has dense range. -/
  dense : DenseRange coe
goal: T0Space self.space

full_name: AbstractCompletion.coe
code: /-- A completion of `α` is the data of a complete separated uniform space (from the same universe)
and a map from `α` with dense range and inducing the original uniform structure on `α`. -/
structure AbstractCompletion (α : Type u) [UniformSpace α] where
  /-- The underlying space of the completion. -/
  space : Type u
  /-- A map from a space to its completion. -/
  coe : α → space
  /-- The completion carries a uniform structure. -/
  uniformStruct : UniformSpace space
  /-- The completion is complete. -/
  complete : CompleteSpace space
  /-- The completion is a T₀ space. -/
  separation : T0Space space
  /-- The map into the completion is uniform-inducing. -/
  uniformInducing : UniformInducing coe
  /-- The map into the completion has dense range. -/
  dense : DenseRange coe
goal: α → self.space

full_name: AbstractCompletion._aux_Mathlib_Topology_UniformSpace_AbstractCompletion___macroRules_AbstractCompletion_termHatα_1
code: local notation "hatα" => pkg.space
goal: Lean.Macro

full_name: AbstractCompletion._aux_Mathlib_Topology_UniformSpace_AbstractCompletion___macroRules_AbstractCompletion_termι_1
code: local notation "ι" => pkg.coe
goal: Lean.Macro

full_name: AbstractCompletion.ofComplete
code: /-- If `α` is complete, then it is an abstract completion of itself. -/
def ofComplete [T0Space α] [CompleteSpace α] : AbstractCompletion α 
goal: AbstractCompletion α

full_name: AbstractCompletion.closure_range
code: theorem closure_range : closure (range ι) = univ 
goal: closure (Set.range pkg.coe) = Set.univ

full_name: AbstractCompletion.denseInducing
code: theorem denseInducing : DenseInducing ι 
goal: DenseInducing pkg.coe

full_name: AbstractCompletion.uniformContinuous_coe
code: theorem uniformContinuous_coe : UniformContinuous ι 
goal: UniformContinuous pkg.coe

full_name: AbstractCompletion.continuous_coe
code: theorem continuous_coe : Continuous ι 
goal: Continuous pkg.coe

full_name: AbstractCompletion.induction_on
code: @[elab_as_elim]
theorem induction_on {p : hatα → Prop} (a : hatα) (hp : IsClosed { a | p a }) (ih : ∀ a, p (ι a)) :
    p a 
goal: p a

full_name: AbstractCompletion.funext
code: protected theorem funext [TopologicalSpace β] [T2Space β] {f g : hatα → β} (hf : Continuous f)
    (hg : Continuous g) (h : ∀ a, f (ι a) = g (ι a)) : f = g 
goal: f = g

full_name: AbstractCompletion.extend
code: /-- Extension of maps to completions -/
protected def extend (f : α → β) : hatα → β 
goal: pkg.space → β

full_name: AbstractCompletion.extend_def
code: theorem extend_def (hf : UniformContinuous f) : pkg.extend f = pkg.denseInducing.extend f 
goal: pkg.extend f = ⋯.extend f

full_name: AbstractCompletion.extend_coe
code: theorem extend_coe [T2Space β] (hf : UniformContinuous f) (a : α) : (pkg.extend f) (ι a) = f a 
goal: pkg.extend f (pkg.coe a) = f a

full_name: AbstractCompletion.uniformContinuous_extend
code: theorem uniformContinuous_extend : UniformContinuous (pkg.extend f) 
goal: UniformContinuous (pkg.extend f)

full_name: AbstractCompletion.continuous_extend
code: theorem continuous_extend : Continuous (pkg.extend f) 
goal: Continuous (pkg.extend f)

full_name: AbstractCompletion.extend_unique
code: theorem extend_unique (hf : UniformContinuous f) {g : hatα → β} (hg : UniformContinuous g)
    (h : ∀ a : α, f a = g (ι a)) : pkg.extend f = g 
goal: pkg.extend f = g

full_name: AbstractCompletion.extend_comp_coe
code: @[simp]
theorem extend_comp_coe {f : hatα → β} (hf : UniformContinuous f) : pkg.extend (f ∘ ι) = f 
goal: pkg.extend (f ∘ pkg.coe) = f

full_name: AbstractCompletion._aux_Mathlib_Topology_UniformSpace_AbstractCompletion___macroRules_AbstractCompletion_termHatβ_1
code: local notation "hatβ" => pkg'.space
goal: Lean.Macro

full_name: AbstractCompletion._aux_Mathlib_Topology_UniformSpace_AbstractCompletion___macroRules_AbstractCompletion_termι'_1
code: local notation "ι'" => pkg'.coe
goal: Lean.Macro

full_name: AbstractCompletion.map
code: /-- Lifting maps to completions -/
protected def map (f : α → β) : hatα → hatβ 
goal: pkg.space → pkg'.space

full_name: AbstractCompletion._aux_Mathlib_Topology_UniformSpace_AbstractCompletion___macroRules_AbstractCompletion_termMap_1
code: local notation "map" => pkg.map pkg'
goal: Lean.Macro

full_name: AbstractCompletion.uniformContinuous_map
code: theorem uniformContinuous_map : UniformContinuous (map f) 
goal: UniformContinuous (pkg.map pkg' f)

full_name: AbstractCompletion.continuous_map
code: @[continuity]
theorem continuous_map : Continuous (map f) 
goal: Continuous (pkg.map pkg' f)

full_name: AbstractCompletion.map_coe
code: @[simp]
theorem map_coe (hf : UniformContinuous f) (a : α) : map f (ι a) = ι' (f a) 
goal: pkg.map pkg' f (pkg.coe a) = pkg'.coe (f a)

full_name: AbstractCompletion.map_unique
code: theorem map_unique {f : α → β} {g : hatα → hatβ} (hg : UniformContinuous g)
    (h : ∀ a, ι' (f a) = g (ι a)) : map f = g 
goal: pkg.map pkg' f = g

full_name: AbstractCompletion.map_id
code: @[simp]
theorem map_id : pkg.map pkg id = id 
goal: pkg.map pkg id = id

full_name: AbstractCompletion.extend_map
code: theorem extend_map [CompleteSpace γ] [T0Space γ] {f : β → γ} {g : α → β}
    (hf : UniformContinuous f) (hg : UniformContinuous g) :
    pkg'.extend f ∘ map g = pkg.extend (f ∘ g) 
goal: pkg'.extend f ∘ pkg.map pkg' g = pkg.extend (f ∘ g)

full_name: AbstractCompletion.map_comp
code: theorem map_comp {g : β → γ} {f : α → β} (hg : UniformContinuous g) (hf : UniformContinuous f) :
    pkg'.map pkg'' g ∘ pkg.map pkg' f = pkg.map pkg'' (g ∘ f) 
goal: pkg'.map pkg'' g ∘ pkg.map pkg' f = pkg.map pkg'' (g ∘ f)

full_name: AbstractCompletion.compare
code: /-- The comparison map between two completions of the same uniform space. -/
def compare : pkg.space → pkg'.space 
goal: pkg.space → pkg'.space

full_name: AbstractCompletion.uniformContinuous_compare
code: theorem uniformContinuous_compare : UniformContinuous (pkg.compare pkg') 
goal: UniformContinuous (pkg.compare pkg')

full_name: AbstractCompletion.compare_coe
code: theorem compare_coe (a : α) : pkg.compare pkg' (pkg.coe a) = pkg'.coe a 
goal: pkg.compare pkg' (pkg.coe a) = pkg'.coe a

full_name: AbstractCompletion.inverse_compare
code: theorem inverse_compare : pkg.compare pkg' ∘ pkg'.compare pkg = id 
goal: pkg.compare pkg' ∘ pkg'.compare pkg = id

full_name: AbstractCompletion.compareEquiv
code: /-- The uniform bijection between two completions of the same uniform space. -/
def compareEquiv : pkg.space ≃ᵤ pkg'.space 
goal: pkg.space ≃ᵤ pkg'.space

full_name: AbstractCompletion.uniformContinuous_compareEquiv
code: theorem uniformContinuous_compareEquiv : UniformContinuous (pkg.compareEquiv pkg') 
goal: UniformContinuous ⇑(pkg.compareEquiv pkg')

full_name: AbstractCompletion.uniformContinuous_compareEquiv_symm
code: theorem uniformContinuous_compareEquiv_symm : UniformContinuous (pkg.compareEquiv pkg').symm 
goal: UniformContinuous ⇑(pkg.compareEquiv pkg').symm

full_name: AbstractCompletion.compare_comp_eq_compare
code: theorem compare_comp_eq_compare (γ : Type*) [TopologicalSpace γ]
    [T3Space γ] {f : α → γ} (cont_f : Continuous f) :
    letI := pkg.uniformStruct.toTopologicalSpace
    letI := pkg'.uniformStruct.toTopologicalSpace
    (∀ a : pkg.space,
      Filter.Tendsto f (Filter.comap pkg.coe (𝓝 a)) (𝓝 ((pkg.denseInducing.extend f) a))) →
      pkg.denseInducing.extend f ∘ pkg'.compare pkg = pkg'.denseInducing.extend f 
goal: (∀ (a : pkg.space), Filter.Tendsto f (Filter.comap pkg.coe (nhds a)) (nhds (⋯.extend f a))) →
  ⋯.extend f ∘ pkg'.compare pkg = ⋯.extend f

full_name: AbstractCompletion._aux_Mathlib_Topology_UniformSpace_AbstractCompletion___macroRules_AbstractCompletion_termHatβ_2
code: local notation "hatβ" => pkg'.space
goal: Lean.Macro

full_name: AbstractCompletion._aux_Mathlib_Topology_UniformSpace_AbstractCompletion___macroRules_AbstractCompletion_termι'_2
code: local notation "ι'" => pkg'.coe
goal: Lean.Macro

full_name: AbstractCompletion.prod
code: /-- Products of completions -/
protected def prod : AbstractCompletion (α × β) 
goal: AbstractCompletion (α × β)

full_name: AbstractCompletion._aux_Mathlib_Topology_UniformSpace_AbstractCompletion___macroRules_AbstractCompletion_termHatβ_3
code: local notation "hatβ" => pkg'.space
goal: Lean.Macro

full_name: AbstractCompletion._aux_Mathlib_Topology_UniformSpace_AbstractCompletion___macroRules_AbstractCompletion_termι'_3
code: local notation "ι'" => pkg'.coe
goal: Lean.Macro

full_name: AbstractCompletion.extend₂
code: /-- Extend two variable map to completions. -/
protected def extend₂ (f : α → β → γ) : hatα → hatβ → γ 
goal: pkg.space → pkg'.space → γ

full_name: AbstractCompletion.extension₂_coe_coe
code: theorem extension₂_coe_coe (hf : UniformContinuous <| uncurry f) (a : α) (b : β) :
    pkg.extend₂ pkg' f (ι a) (ι' b) = f a b 
goal: pkg.extend₂ pkg' f (pkg.coe a) (pkg'.coe b) = f a b

full_name: AbstractCompletion.uniformContinuous_extension₂
code: theorem uniformContinuous_extension₂ : UniformContinuous₂ (pkg.extend₂ pkg' f) 
goal: UniformContinuous₂ (pkg.extend₂ pkg' f)

full_name: AbstractCompletion._aux_Mathlib_Topology_UniformSpace_AbstractCompletion___macroRules_AbstractCompletion_termHatβ_4
code: local notation "hatβ" => pkg'.space
goal: Lean.Macro

full_name: AbstractCompletion._aux_Mathlib_Topology_UniformSpace_AbstractCompletion___macroRules_AbstractCompletion_termι'_4
code: local notation "ι'" => pkg'.coe
goal: Lean.Macro

full_name: AbstractCompletion._aux_Mathlib_Topology_UniformSpace_AbstractCompletion___macroRules_AbstractCompletion_termHatγ_1
code: local notation "hatγ" => pkg''.space
goal: Lean.Macro

full_name: AbstractCompletion._aux_Mathlib_Topology_UniformSpace_AbstractCompletion___macroRules_AbstractCompletion_termι''_1
code: local notation "ι''" => pkg''.coe
goal: Lean.Macro

full_name: AbstractCompletion.«_aux_Mathlib_Topology_UniformSpace_AbstractCompletion___macroRules_AbstractCompletion_term_∘₂__1»
code: local notation f " ∘₂ " g => bicompr f g
goal: Lean.Macro

full_name: AbstractCompletion._aux_Mathlib_Topology_UniformSpace_AbstractCompletion___unexpand_Function_bicompr_1
code: local notation f " ∘₂ " g => bicompr f g
goal: Lean.PrettyPrinter.Unexpander

full_name: AbstractCompletion.map₂
code: /-- Lift two variable maps to completions. -/
protected def map₂ (f : α → β → γ) : hatα → hatβ → hatγ 
goal: pkg.space → pkg'.space → pkg''.space

full_name: AbstractCompletion.uniformContinuous_map₂
code: theorem uniformContinuous_map₂ (f : α → β → γ) : UniformContinuous₂ (pkg.map₂ pkg' pkg'' f) 
goal: UniformContinuous₂ (pkg.map₂ pkg' pkg'' f)

full_name: AbstractCompletion.continuous_map₂
code: theorem continuous_map₂ {δ} [TopologicalSpace δ] {f : α → β → γ} {a : δ → hatα} {b : δ → hatβ}
    (ha : Continuous a) (hb : Continuous b) :
    Continuous fun d : δ => pkg.map₂ pkg' pkg'' f (a d) (b d) 
goal: Continuous fun d => pkg.map₂ pkg' pkg'' f (a d) (b d)

full_name: AbstractCompletion.map₂_coe_coe
code: theorem map₂_coe_coe (a : α) (b : β) (f : α → β → γ) (hf : UniformContinuous₂ f) :
    pkg.map₂ pkg' pkg'' f (ι a) (ι' b) = ι'' (f a b) 
goal: pkg.map₂ pkg' pkg'' f (pkg.coe a) (pkg'.coe b) = pkg''.coe (f a b)