Composition of Limits

Problem

Let $\mathcal{U}$ and $\mathcal{V}$ be open subsets of $\R^n$ and $\R^m$ respectively, $f:\mathcal{V} \to \R^k$ and $g:\mathcal{U} \to \R^m$ be functions such that $g(\mathcal{U}) \subseteq \mathcal{V}$, and $\vect{x}_0 \in \mathcal{U}, \vect{y}_0 \in \mathcal{V}$, and $\vect{z}_0 \in \R^k$ be points such that $\lim\limits_{\vect{x} \to \vect{x}_0} g(\vect{x}) = \vect{y}_0$ and $\lim\limits_{\vect{y} \to \vect{y}_0} f(\vect{y}) = \vect{z}_0$.

Is it possible that $\lim\limits_{\vect{x} \to \vect{x}_0} f(g(\vect{x})) \ne \vect{z}_0$?

"Intuition"

1. Since $\lim\limits_{\vect{x} \to \vect{x}_0} g(\vect{x}) = \vect{y}_0$, as $\vect{x}$ is "sufficiently near to $\vect{x}_0$", $\vect{y} = g(\vect{x})$ is "very close" to $\vect{y}_0$.
2. Since $\lim\limits_{\vect{y} \to \vect{y}_0} f(\vect{y}) = \vect{z}_0$, as $\vect{y}$ is "sufficiently near to $\vect{y}_0$", $\vect{z} = f(\vect{y})$ is "very close" to $\vect{z}_0$.

Combining (1) and (2), as $\vect{x}$ is "sufficiently near to $\vect{x}_0$", $\vect{z} = f(\vect{y})$ is "very close" to $\vect{z}_0$, thus one expects $\lim\limits_{\vect{x} \to \vect{x}_0} f(g(\vect{x})) = \vect{z}_0$.

Discussion

It isn't hard to copy the standard $\epsilon$-$\delta$ arguments from elementary math analysis and calculus books. When one looks at the "for all" and "there exists" for the first few times, the logic seems complicated. After some time, one gets used to it, recites it and simply repeats it. However, those standard arguments usually consist of something like "if $0 < \norm{\vect{x} - \vect{x}_0} < \delta$, then $\norm{g(\vect{x}) - \vect{y}_0} < \epsilon$". For a long sentence, it's possible that one overlooks the conditions and gets stuck.

Use another notations

Note: see Definition of Content 0 Sets for the definition of open ball $\mathcal{B}_r(\vect{x}_0)$.

Let $\epsilon > 0$.

$\because \lim\limits_{\vect{y} \to \vect{y}_0} f(\vect{y}) = \vect{z}_0$

(a) $\therefore \exists\,\delta' > 0 \text{ such that } f(\mathcal{B}_{\delta'} (\vect{y}_0)\setminus\left\{\vect{y}_0\right\}) \subseteq \mathcal{B}_\epsilon (\vect{z}_0)$ Source

Use another given limit.

$\because \lim\limits_{\vect{x} \to \vect{x}_0} g(\vect{x}) = \vect{y}_0$

(b) $\therefore \exists\,\delta > 0 \text{ such that } g(\mathcal{B}_\delta (\vect{x}_0)\setminus\left\{\vect{x}_0\right\}) \subseteq \mathcal{B}_{\delta'} (\vect{y}_0)$ Source

Since this question deals with $f \circ g$, we apply $f$ to (b).

$f(g(\mathcal{B}_\delta (\vect{x}_0)\setminus\left\{\vect{x}_0\right\})) \subseteq f(\mathcal{B}_{\delta'} (\vect{y}_0)) \color{red}{\subseteq \mathcal{B}_\epsilon (\vect{z}_0)?}$

To answer the above question, we look at (a).

$f(\mathcal{B}_{\delta'} (\vect{y}_0)\setminus\left\{\vect{y}_0\right\}) \subseteq \mathcal{B}_\epsilon (\vect{z}_0)$

Thus, the key of this problem is whether the point $\vect{y}_0$ is in $\mathcal{B}_\epsilon (\vect{z}_0)$, and whehter such $\vect{y}_0$ exists.

Since we want $\lim\limits_{\vect{x} \to \vect{x}_0} f(g(\vect{x})) \ne \vect{z}_0$, we want $f(g(\mathcal{B}_\delta (\vect{x}_0)\setminus\left\{\vect{x}_0\right\})) \nsubseteq \mathcal{B}_\epsilon (\vect{z}_0)$, i.e. $\color{blue}{f(\vect{y}_0) \notin \mathcal{B}_\epsilon (\vect{z}_0)}$.

Moreover, to ensure the existence of such points, one needs $\color{blue}{\forall\,\delta > 0, g^{-1} (\left\{\vect{y}_0\right\}) \cap \mathcal{B}_\delta (\vect{x}_0) \ne \varnothing}$. Source

Note: I use a blue sector centred at $\vect{x}_0$ to represent the second additional condition because

1. no matter how small the radius $\delta$ of $\mathcal{B}_\delta (\vect{x}_0)$ is, you can’t get rid of the blue region.
2. I don’t know how to draw a random region which “touches” but excludes $\vect{x}_0$.

Conclusion

With the above two additional conditions, one has $\lim\limits_{\vect{x} \to \vect{x}_0} f(g(\vect{x})) \ne \vect{z}_0$.

Some off-topic remarks

While drawing these three figures with TikZ, I found out the difference between a node and a coordinate. For the former, it requires some node text, though one may use {} for that. For the later, one can’t add {labels} like the former. Defining the point (-6,0) as a node with labelling text, I can’t draw a sector “touching” but excluding (-6,0). Therefore, I have to define it as a coordinate.