Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Merged by Bors] - feat(Topology/UniformSpace/AbstractCompletion):add comparison lemma #12979

Closed
wants to merge 13 commits into from
Closed
34 changes: 34 additions & 0 deletions Mathlib/Topology/UniformSpace/AbstractCompletion.lean
Original file line number Diff line number Diff line change
Expand Up @@ -282,6 +282,40 @@ theorem uniformContinuous_compareEquiv_symm : UniformContinuous (pkg.compareEqui
pkg'.uniformContinuous_compare pkg
#align abstract_completion.uniform_continuous_compare_equiv_symm AbstractCompletion.uniformContinuous_compareEquiv_symm

/-Let `f : α → γ` be a continuous function between a uniform space `α` and a regular topological
space `γ`, and let `pkg, pkg'` be two abstract completions of `α`. Then
if for every point `a : pkg` the filter `f.map (coe⁻¹ (𝓝 a))` obtained by pushing forward with `f`
the preimage in `α` of `𝓝 a` tends to `𝓝 (f.extend a : β)`, then the comparison map
between `pkg` and `pkg'` composed with the extension of `f` to `pkg`` coincides with the
extension of `f` to `pkg'`: the situation is described in the following diagram, where the
two diagonal arrows are the extensions of `f` to the two different completions `pkg` and `pkg'`:
`α^`=`pkg` ≅ `α^'`=`pkg'` *here `≅` is `compare`*
∧ \ /
| \ /
| \ /
| V ∨
α ---f---> γ
-/

open scoped Topology

theorem CompareComp_Compare (γ : Type*) [TopologicalSpace γ]
[T3Space γ] (f : α → γ) (cont_f : Continuous f) :
let _ := pkg.uniformStruct.toTopologicalSpace
let _ := 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 := by
let _ := pkg'.uniformStruct
let _ := pkg.uniformStruct
intro _ _ h
have : ∀ x : α, (pkg.denseInducing.extend f ∘ pkg'.compare pkg) (pkg'.coe x) = f x := by
simp only [Function.comp_apply, compare_coe, DenseInducing.extend_eq _ cont_f, implies_true]
apply (DenseInducing.extend_unique (AbstractCompletion.denseInducing _) this
(Continuous.comp _ (uniformContinuous_compare pkg' pkg).continuous )).symm
apply DenseInducing.continuous_extend
exact fun a => ⟨(pkg.denseInducing.extend f) a, h a⟩

end Compare

section Prod
Expand Down
Loading