Zulip Chat Archive

Stream: Is there code for X?

Topic: Continuous of neighborhoods


Aaron Liu (Jun 27 2025 at 12:07):

I want to prove a function is continuous from its action on neighborhoods, so the converse to docs#Continuous.tendsto. I couldn't find this theorem anywhere.

import Mathlib

example {X Y : Type*} [TopologicalSpace X] [TopologicalSpace Y] {f : X  Y}
    (hf :  x : X, Filter.Tendsto f (nhds x) (nhds (f x))) : Continuous f := by
  sorry

Junyan Xu (Jun 27 2025 at 12:11):

hf x is it's the definition of ContinuousAt

Aaron Liu (Jun 27 2025 at 12:11):

Is that meant to be unfolded?

Junyan Xu (Jun 27 2025 at 12:12):

(so you can use continuous_iff_continuousAt)
(I think the answer is you should stick to the ContinuousAt API rather than unfolding it)

Aaron Liu (Jun 27 2025 at 12:14):

If I don't want to unfold it then how do I get ContinuousAt x ↔ Filter.Tendsto f (nhds x) (nhds (f x))?

Kenny Lau (Jun 27 2025 at 12:24):

@Aaron Liu ContinuousAt.tendsto

Kenny Lau (Jun 27 2025 at 12:24):

and continuousAt_of_tendsto_nhds for the other direction

Aaron Liu (Jun 27 2025 at 12:24):

No I want the other direction

Aaron Liu (Jun 27 2025 at 12:25):

Kenny Lau said:

and continuousAt_of_tendsto_nhds for the other direction

  1. This needs T1Space (which is not a problem for me but I thought I'd mention it anyways)
  2. It's very annoying to use this with apply since I get ?y in my goal

Aaron Liu (Jun 27 2025 at 12:31):

For context, I want to prove a function partially defined on a quotient (so from a subtype of a quotient) is continuous, so it's much easier to work with neighborhoods since then I can use lemmas like docs#nhds_subtype.

Anatole Dedecker (Jun 27 2025 at 15:08):

With the current API unfolding is the best solution.


Last updated: Dec 20 2025 at 21:32 UTC