[step:Define the frame and associated bundle functors]
Let $G := GL_r(\mathbb{R})$. For a smooth rank-$r$ real vector bundle $\pi_E:E \to M$, define the smooth principal right $G$-bundle $\operatorname{Fr}(E) \to M$ by
\begin{align*}
\operatorname{Fr}(E)_p=\{\nu:\mathbb{R}^r \to E_p \mid \nu \text{ is a linear isomorphism}\}.
\end{align*}
The right action is
\begin{align*}
\operatorname{Fr}(E)_p \times G \to \operatorname{Fr}(E)_p,\qquad (\nu,g)\mapsto \nu \cdot g := \nu \circ g.
\end{align*}
This action is free and transitive on each fiber, since any two frames $\nu,\mu:\mathbb{R}^r \to E_p$ satisfy $\mu=\nu\circ(\nu^{-1}\circ\mu)$ with $\nu^{-1}\circ\mu \in G$.
If $F:E \to E'$ is a vector bundle isomorphism over $\operatorname{id}_M$, define
\begin{align*}
\operatorname{Fr}(F):\operatorname{Fr}(E) \to \operatorname{Fr}(E'),\qquad \nu \mapsto F_{\pi_E(\nu)}\circ \nu.
\end{align*}
This is smooth in local bundle charts, covers $\operatorname{id}_M$, and is $G$-equivariant because
\begin{align*}
\operatorname{Fr}(F)(\nu \cdot g)=F_{\pi_E(\nu)}\circ \nu \circ g=\operatorname{Fr}(F)(\nu)\cdot g.
\end{align*}
Thus $E \mapsto \operatorname{Fr}(E)$ defines a functor
\begin{align*}
\operatorname{Fr}: \mathrm{Vect}_r(M) \to \mathrm{Prin}_G(M).
\end{align*}
Conversely, for a smooth principal right $G$-bundle $\pi_P:P \to M$, define
\begin{align*}
A(P):=P\times_G \mathbb{R}^r.
\end{align*}
Here $P\times_G\mathbb{R}^r$ is the quotient of $P\times \mathbb{R}^r$ by the [equivalence relation](/page/Equivalence%20Relation)
\begin{align*}
(u\cdot g,v)\sim (u,g v)
\end{align*}
for $u\in P$, $g\in G$, and $v\in\mathbb{R}^r$. Write $[u,v]$ for the equivalence class of $(u,v)$. The projection is
\begin{align*}
A(P) \to M,\qquad [u,v]\mapsto \pi_P(u).
\end{align*}
Local principal trivializations identify this quotient with $U\times\mathbb{R}^r$, so $A(P)\to M$ is a smooth real rank-$r$ vector bundle.
If $\Psi:P \to Q$ is a principal bundle isomorphism over $\operatorname{id}_M$, define
\begin{align*}
A(\Psi):A(P) \to A(Q),\qquad [u,v]\mapsto [\Psi(u),v].
\end{align*}
This is well-defined because $\Psi(u\cdot g)=\Psi(u)\cdot g$, so
\begin{align*}
[\Psi(u\cdot g),v]=[\Psi(u)\cdot g,v]=[\Psi(u),gv].
\end{align*}
It is a smooth vector bundle isomorphism in local principal charts. Therefore $P\mapsto A(P)$ defines a functor
\begin{align*}
A:\mathrm{Prin}_G(M)\to \mathrm{Vect}_r(M).
\end{align*}
[/step]