Why an immersion induces a Riemannian metric.

I want to prove the following fact: “Let $$f:M^n\rightarrow N^{n+k}$$ be an immersion. If $$N$$ has a Riemannian structure, then $$f$$ induces a Riemannian structure on $$M$$ by $$\langle u,v\rangle_p=\langle df_p(u),df_p(v)\rangle_{f(p)}$$.”

I could check all conditions except that if $$X$$ and $$Y$$ are vector fields in a neighborhood $$V$$ of $$M$$, why $$\langle X,Y\rangle$$ will be a smooth map on $$V$$. I went as far as $$\langle X,Y\rangle(p)=\langle X(p),Y(p)\rangle_p=\langle df_p(X(p)),df_p(Y(p))\rangle_{f(p)}$$. Why is the last expression smooth?

Note: Notations are from DoCarmo’s Riemannian Geometry book.

Edit: I posted a sketchy solution. Is it correct?

You can check in coordinates, or for a coordinates-free solution, note that we have three varying pieces on the RHS, namely $$(df)_p(X(p)),\quad (df)_p(Y(p)),\quad \langle\cdot,\cdot\rangle_{f(p)}$$ and they are smooth sections of $$f^*TN$$, $$f^*TN$$ and $$f^*{\large\otimes}^2T^*N$$ (or if you want, the subbundle $$f^*\operatorname{Sym}^2T^*N$$) because $$f,X,Y,\langle,\rangle^N$$ are smooth. So $$p\mapsto((df)_p(X(p));(df)_p(Y(p));\langle\cdot,\cdot\rangle_{f(p)})\in (f^*TN\times f^*TN\times{\large\otimes}^2f^*T^*N)_p$$ is smooth. Contracting, we have $$p\mapsto\langle(df)_p(X(p)),(df)_p(Y(p))\rangle_{f(p)}$$ is smooth.
I think I could solve it. Let $$x$$ be a parametrization at $$p$$ and $$y$$ a parametrization at $$f(p)$$. So the local representation of $$df_p(X(p))$$ in the associated basis {$$\partial/\partial{y_i}$$} is $$[dy_i/dx_j]_{i,j}(x_i(p))$$. The rest follows since the inner product is always bilinear.