Solution (source code)

= Solution

Choose the smooth <fiber metric> supplied by part (a), and let $P_p:E_p\to F_p$ be <orthogonal projection>. These projections vary smoothly. Indeed, in a <local frame> of $E$ write its metric as a <positive-definite> <matrix> $G(p)$, and let the columns of $A(p)$ be a frame of $F$. Then
$$
P=A(A^tGA)^{-1}A^tG.
$$
The <matrix> $A^tGA$ is positive definite, so its inverse is smooth. This formula proves smoothness of the intrinsic projections in every chart. It also gives $P^2=P$ and $\operatorname{im}P=F$.

The <orthogonal complement> $F^\perp=\ker P$ is a smooth <vector subbundle>: applying $I-P$ to a complement frame gives a frame of its <fibers>, of constant rank $s-r$, after shrinking the chart. Fiberwise,
$$
E=F\oplus F^\perp,
$$
and the restriction $q|_{F^\perp}:F^\perp\to E/F$ is a smooth fiberwise bijective <vector bundle morphism>. In <local frames> its <matrix> is invertible, with smooth inverse, so it is a <vector bundle isomorphism>.

More explicitly, the desired <orthogonal splitting of a vector subbundle> is
$$
\boxed{\Psi:E\longrightarrow F\oplus(E/F),\qquad \Psi(v)=(Pv,[v]).}
$$
Its inverse is $(f,[v])\mapsto f+(I-P)v$. Replacing $v$ by $v+w$ with $w\in F_p$ leaves $(I-P)v$ unchanged, so the inverse is well-defined. Both maps are smooth and linear on <fibers>, and their compositions are identities. The splitting exists globally but depends on the chosen <fiber metric>.