Theorem: AbstractCompletion.compare_comp_eq_compare
File: Mathlib/Topology/UniformSpace/AbstractCompletion.lean

Proof steps:
state_before: α : Type u_1
inst✝³ : UniformSpace α
pkg : AbstractCompletion α
β : Type u_2
inst✝² : UniformSpace β
pkg' : AbstractCompletion α
γ : Type u_3
inst✝¹ : TopologicalSpace γ
inst✝ : T3Space γ
f : α → γ
cont_f : Continuous f
⊢ (∀ (a : pkg.space), Tendsto f (comap pkg.coe (𝓝 a)) (𝓝 (⋯.extend f a))) → ⋯.extend f ∘ pkg'.compare pkg = ⋯.extend f
state_after: α : Type u_1
inst✝³ : UniformSpace α
pkg : AbstractCompletion α
β : Type u_2
inst✝² : UniformSpace β
pkg' : AbstractCompletion α
γ : Type u_3
inst✝¹ : TopologicalSpace γ
inst✝ : T3Space γ
f : α → γ
cont_f : Continuous f
x✝ : UniformSpace pkg'.space := pkg'.uniformStruct
⊢ (∀ (a : pkg.space), Tendsto f (comap pkg.coe (𝓝 a)) (𝓝 (⋯.extend f a))) → ⋯.extend f ∘ pkg'.compare pkg = ⋯.extend f
tactic: let _ := pkg'.uniformStruct
state_before: α : Type u_1
inst✝³ : UniformSpace α
pkg : AbstractCompletion α
β : Type u_2
inst✝² : UniformSpace β
pkg' : AbstractCompletion α
γ : Type u_3
inst✝¹ : TopologicalSpace γ
inst✝ : T3Space γ
f : α → γ
cont_f : Continuous f
x✝ : UniformSpace pkg'.space := pkg'.uniformStruct
⊢ (∀ (a : pkg.space), Tendsto f (comap pkg.coe (𝓝 a)) (𝓝 (⋯.extend f a))) → ⋯.extend f ∘ pkg'.compare pkg = ⋯.extend f
state_after: α : Type u_1
inst✝³ : UniformSpace α
pkg : AbstractCompletion α
β : Type u_2
inst✝² : UniformSpace β
pkg' : AbstractCompletion α
γ : Type u_3
inst✝¹ : TopologicalSpace γ
inst✝ : T3Space γ
f : α → γ
cont_f : Continuous f
x✝¹ : UniformSpace pkg'.space := pkg'.uniformStruct
x✝ : UniformSpace pkg.space := pkg.uniformStruct
⊢ (∀ (a : pkg.space), Tendsto f (comap pkg.coe (𝓝 a)) (𝓝 (⋯.extend f a))) → ⋯.extend f ∘ pkg'.compare pkg = ⋯.extend f
tactic: let _ := pkg.uniformStruct
state_before: α : Type u_1
inst✝³ : UniformSpace α
pkg : AbstractCompletion α
β : Type u_2
inst✝² : UniformSpace β
pkg' : AbstractCompletion α
γ : Type u_3
inst✝¹ : TopologicalSpace γ
inst✝ : T3Space γ
f : α → γ
cont_f : Continuous f
x✝¹ : UniformSpace pkg'.space := pkg'.uniformStruct
x✝ : UniformSpace pkg.space := pkg.uniformStruct
⊢ (∀ (a : pkg.space), Tendsto f (comap pkg.coe (𝓝 a)) (𝓝 (⋯.extend f a))) → ⋯.extend f ∘ pkg'.compare pkg = ⋯.extend f
state_after: α : Type u_1
inst✝³ : UniformSpace α
pkg : AbstractCompletion α
β : Type u_2
inst✝² : UniformSpace β
pkg' : AbstractCompletion α
γ : Type u_3
inst✝¹ : TopologicalSpace γ
inst✝ : T3Space γ
f : α → γ
cont_f : Continuous f
x✝¹ : UniformSpace pkg'.space := pkg'.uniformStruct
x✝ : UniformSpace pkg.space := pkg.uniformStruct
h : ∀ (a : pkg.space), Tendsto f (comap pkg.coe (𝓝 a)) (𝓝 (⋯.extend f a))
⊢ ⋯.extend f ∘ pkg'.compare pkg = ⋯.extend f
tactic: intro h
state_before: α : Type u_1
inst✝³ : UniformSpace α
pkg : AbstractCompletion α
β : Type u_2
inst✝² : UniformSpace β
pkg' : AbstractCompletion α
γ : Type u_3
inst✝¹ : TopologicalSpace γ
inst✝ : T3Space γ
f : α → γ
cont_f : Continuous f
x✝¹ : UniformSpace pkg'.space := pkg'.uniformStruct
x✝ : UniformSpace pkg.space := pkg.uniformStruct
h : ∀ (a : pkg.space), Tendsto f (comap pkg.coe (𝓝 a)) (𝓝 (⋯.extend f a))
⊢ ⋯.extend f ∘ pkg'.compare pkg = ⋯.extend f
state_after: α : Type u_1
inst✝³ : UniformSpace α
pkg : AbstractCompletion α
β : Type u_2
inst✝² : UniformSpace β
pkg' : AbstractCompletion α
γ : Type u_3
inst✝¹ : TopologicalSpace γ
inst✝ : T3Space γ
f : α → γ
cont_f : Continuous f
x✝¹ : UniformSpace pkg'.space := pkg'.uniformStruct
x✝ : UniformSpace pkg.space := pkg.uniformStruct
h : ∀ (a : pkg.space), Tendsto f (comap pkg.coe (𝓝 a)) (𝓝 (⋯.extend f a))
this : ∀ (x : α), (⋯.extend f ∘ pkg'.compare pkg) (pkg'.coe x) = f x
⊢ ⋯.extend f ∘ pkg'.compare pkg = ⋯.extend f
tactic: 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]
state_before: α : Type u_1
inst✝³ : UniformSpace α
pkg : AbstractCompletion α
β : Type u_2
inst✝² : UniformSpace β
pkg' : AbstractCompletion α
γ : Type u_3
inst✝¹ : TopologicalSpace γ
inst✝ : T3Space γ
f : α → γ
cont_f : Continuous f
x✝¹ : UniformSpace pkg'.space := pkg'.uniformStruct
x✝ : UniformSpace pkg.space := pkg.uniformStruct
h : ∀ (a : pkg.space), Tendsto f (comap pkg.coe (𝓝 a)) (𝓝 (⋯.extend f a))
this : ∀ (x : α), (⋯.extend f ∘ pkg'.compare pkg) (pkg'.coe x) = f x
⊢ ⋯.extend f ∘ pkg'.compare pkg = ⋯.extend f
state_after: α : Type u_1
inst✝³ : UniformSpace α
pkg : AbstractCompletion α
β : Type u_2
inst✝² : UniformSpace β
pkg' : AbstractCompletion α
γ : Type u_3
inst✝¹ : TopologicalSpace γ
inst✝ : T3Space γ
f : α → γ
cont_f : Continuous f
x✝¹ : UniformSpace pkg'.space := pkg'.uniformStruct
x✝ : UniformSpace pkg.space := pkg.uniformStruct
h : ∀ (a : pkg.space), Tendsto f (comap pkg.coe (𝓝 a)) (𝓝 (⋯.extend f a))
this : ∀ (x : α), (⋯.extend f ∘ pkg'.compare pkg) (pkg'.coe x) = f x
⊢ Continuous (⋯.extend f)
tactic: apply (DenseInducing.extend_unique (AbstractCompletion.denseInducing _) this
    (Continuous.comp _ (uniformContinuous_compare pkg' pkg).continuous )).symm
state_before: α : Type u_1
inst✝³ : UniformSpace α
pkg : AbstractCompletion α
β : Type u_2
inst✝² : UniformSpace β
pkg' : AbstractCompletion α
γ : Type u_3
inst✝¹ : TopologicalSpace γ
inst✝ : T3Space γ
f : α → γ
cont_f : Continuous f
x✝¹ : UniformSpace pkg'.space := pkg'.uniformStruct
x✝ : UniformSpace pkg.space := pkg.uniformStruct
h : ∀ (a : pkg.space), Tendsto f (comap pkg.coe (𝓝 a)) (𝓝 (⋯.extend f a))
this : ∀ (x : α), (⋯.extend f ∘ pkg'.compare pkg) (pkg'.coe x) = f x
⊢ Continuous (⋯.extend f)
state_after: case hf
α : Type u_1
inst✝³ : UniformSpace α
pkg : AbstractCompletion α
β : Type u_2
inst✝² : UniformSpace β
pkg' : AbstractCompletion α
γ : Type u_3
inst✝¹ : TopologicalSpace γ
inst✝ : T3Space γ
f : α → γ
cont_f : Continuous f
x✝¹ : UniformSpace pkg'.space := pkg'.uniformStruct
x✝ : UniformSpace pkg.space := pkg.uniformStruct
h : ∀ (a : pkg.space), Tendsto f (comap pkg.coe (𝓝 a)) (𝓝 (⋯.extend f a))
this : ∀ (x : α), (⋯.extend f ∘ pkg'.compare pkg) (pkg'.coe x) = f x
⊢ ∀ (b : pkg.space), ∃ c, Tendsto f (comap pkg.coe (𝓝 b)) (𝓝 c)
tactic: apply DenseInducing.continuous_extend
state_before: case hf
α : Type u_1
inst✝³ : UniformSpace α
pkg : AbstractCompletion α
β : Type u_2
inst✝² : UniformSpace β
pkg' : AbstractCompletion α
γ : Type u_3
inst✝¹ : TopologicalSpace γ
inst✝ : T3Space γ
f : α → γ
cont_f : Continuous f
x✝¹ : UniformSpace pkg'.space := pkg'.uniformStruct
x✝ : UniformSpace pkg.space := pkg.uniformStruct
h : ∀ (a : pkg.space), Tendsto f (comap pkg.coe (𝓝 a)) (𝓝 (⋯.extend f a))
this : ∀ (x : α), (⋯.extend f ∘ pkg'.compare pkg) (pkg'.coe x) = f x
⊢ ∀ (b : pkg.space), ∃ c, Tendsto f (comap pkg.coe (𝓝 b)) (𝓝 c)
state_after: no goals
tactic: exact fun a ↦ ⟨(pkg.denseInducing.extend f) a, h a⟩