For metric spaces $(X, d_X)$ and $(Y, d_Y)$, let $C (X; Y) := \{ f : X \longrightarrow Y, f~\text{continuous} \}$. Let $g \in C ([0, 1]; [0, 1])$ and consider $(C([0, 1]; [0, 1]), || \cdot ||_\infty)$, the metric space of the continuous functions with the sup norm. Show that
(a) $G : C([0, 1]; [0, 1]) \longrightarrow C([0, 1]; [0, 1])$, $f \mapsto f \circ g$ is continuous;
(b) $G : C([0, 1]; [0, 1]) \longrightarrow C([0, 1]; [0, 1])$, $f \mapsto g \circ f$ is continuous.
Hint: Use that $g$ is uniformly continuous.
For (a), I tried to verify, following the standard definition of continuity, that $\forall \varepsilon > 0 \exists \delta > 0 : || f - h ||_\infty < \delta \Longrightarrow || G (f) - G (h) ||_\infty = || f \circ g - h \circ g ||_\infty < \varepsilon$, where $f, h \in C([0, 1]; [0, 1])$, but I'm getting nowhere.
I'm struggling with how $d$ and $|| \cdot ||_\infty$ are related between the different metric spaces. Does the sup norm in $(C([0, 1]; [0, 1]), || \cdot ||_\infty)$ imply that $d_X = d_Y = | \cdot |$? If so, what about the following example? Let $f (x) := 1$, $h (x) := 0$, and $g (x) = x$ for $x \in [0, 1]$, which are all continuous. Then,
$|| G (f) - G (h) ||_\infty = || f \circ g - h \circ g ||_\infty = \sup_{x \in [0, 1]} | f (g (x)) - h (g (x)) | = \sup_{x \in [0, 1]} | f (x) - h (x) | = | 1 - 0 | = 1.$
Hence, I cannot even pick $\varepsilon < 1$. I'm afraid I'm misreading the problem. I appreciate any clarification or hints.
I think you've misunderstood what it means for a function between to metric spaces to be continuous.
Let's rewrite down the definition : let $(X,d_X)$, $(Y,d_Y)$ be two metric spaces and $f:X\to Y$ a function. Then $f$ is continuous at $x\in X$ if and only if: $$\forall \epsilon >0, \exists \delta >0, \forall y\in X, d_X(x,y) < \delta \implies d_Y(f(x),f(y)) < \epsilon$$
Now what does this mean in English ? Well given any small quantity that I want ($\epsilon$) there is a little ball around $x$ of nonzero size ($\delta$) such that any point in this little ball is sent by $f$ close to $f(x)$, as close as the small quantity initially chosen.
Essentially this means that if I want to ensure that $f(y)$ is close to $f(x)$, I can always pick a small enough ball around $x$ in which this will be the case for all $y$'s. A slogan would be "you can get arbitrarily close to $f(x)$ in $Y$ if you are willing to go arbitrarily close to $x$ in $X$".
The $\implies$ is probably the part that's bugging you (it does so to many students at first). You should read it as a "such that", i.e. $\forall \epsilon >0, \exists \delta >0, \forall y\in X$ such that $d_X(x,y) < \delta$, we have $d_Y(f(x),f(y)) < \epsilon$. This is exactly the same thing (perhaps that's what's troubling you ?) but it may help you to understand.
Now what does this mean in our context ? Here $X=Y= C([0,1], [0,1])$ and $d_X = d_Y= || - ||_\infty$. Let's first consider (a). What does it mean for $G$ to be continuous at $f\in C([0,1], [0,1])$ ? It means that if I want $h\circ g$ to be really close to $f\circ g$, then I can make that happen by choosing $h$ really close to $f$.
This is what's wrong with your example: you want $h\circ g$ to be really close to $f\circ g$ but you're not allowing $h$ to move, you're not allowing it to be really close to $f$: of course you're not going to manage to have $G(h)$ close to $G(f)$ if you're not making $h$ move close to $f$. There's the exact same thing for any metric space $(X,d)$ and the identity function $id_X: X\to X$: if $d(x,y) = 1$, then $d(id_X(x), id_X(y)) = 1$ and it can't be smaller than $\epsilon <1$. But if I allow $y$ to move close to $x$ then I can make $id_X(y)$ close to $id_X(y)$.
Now I'll show you how to solve the (a) part to see a bit how it goes. I have $f\in C([0,1],[0,1])$, and $\epsilon>0$. I want to guarantee that $G(h)$ will be close to $G(f)$. As you've pointed out this can't be done for arbitrary $h$ so I have to make $h$ move. But notice that for $x\in [0,1]$, $|f(g(x)) - h(g(x))| = |f(y)-h(y)|$ for $y= g(x)$, and so $|f(g(x)) - h(g(x))| \leq \sup_{y\in [0,1]}|f(y)-h(y)| \leq ||f-h||_\infty$. This being true for arbitrary $x$, we get $||f\circ g - h\circ g||_\infty \leq ||f-h||_\infty$.
Hence if I choose $\delta = \epsilon$, then all the $h$'s close enough to $f$ (those at distance $<\delta$) will also satisfy that $G(h)$ is $\epsilon$-close to $G(f)$: $\forall h, ||f-h||_\infty < \delta \implies ||G(f)-G(h)||_\infty < \epsilon$. This proves that $G$ is continuous at $f$ (even better, we proved that $G$ is $1$-lipschitzian but this isn't asked in the exercise), for arbitrary $f$, hence $G$ is continuous.
The (b)-part is a bit trickier since you need to use Heine's theorem, i.e. any continuous $g:[0,1]\to [0,1]$ is uniformly continuous; but I hope that now you will see how it works (if needed I can also expand on it)