[proofplan]
We first make the model vector spaces explicit: $A$ is modeled on $V$, $B$ is modeled on $W$, and the affine map $f$ has linear part $L:V \to W$. The bijectivity of $f$ forces $L$ to be injective and surjective by translating points in $A$ and $B$. Then, after choosing a base point $c_0 \in C$, we write the affine subspace as $C=c_0+\operatorname{dir}(C)$ and use the defining identity for the linear part of an affine map to compute $f(C)$ exactly as a translate of $L(\operatorname{dir}(C))$.
[/proofplan]
[step:Prove that the linear part is injective]
Let $0_V \in V$ and $0_W \in W$ denote the zero vectors. Since $f$ is affine with linear part $L$, for every $a \in A$ and every $v \in V$ we have
\begin{align*}
f(a+v)=f(a)+L(v).
\end{align*}
To prove that $L$ is injective, let $v \in V$ satisfy $L(v)=0_W$. Choose any point $a_0 \in A$. Then
\begin{align*}
f(a_0+v)=f(a_0)+L(v).
\end{align*}
Since $L(v)=0_W$, the affine action of $W$ gives
\begin{align*}
f(a_0+v)=f(a_0).
\end{align*}
The map $f$ is injective because it is an affine isomorphism, so $a_0+v=a_0$. By freeness of the affine action of $V$ on $A$, this implies $v=0_V$. Therefore $\ker L=\{0_V\}$, so $L$ is injective.
[guided]
We want to show that no nonzero translation vector in $V$ can be sent to the zero vector in $W$. Let $v \in V$ be a vector such that $L(v)=0_W$. Choose a point $a_0 \in A$. The defining property of the linear part of an affine map says that translating the input by $v$ translates the output by $L(v)$:
\begin{align*}
f(a_0+v)=f(a_0)+L(v).
\end{align*}
Since $L(v)=0_W$, this becomes
\begin{align*}
f(a_0+v)=f(a_0)+0_W.
\end{align*}
The zero vector acts as the identity translation in the [affine space](/page/Affine%20Space) $B$, hence
\begin{align*}
f(a_0+v)=f(a_0).
\end{align*}
Now we use the hypothesis that $f$ is an affine isomorphism. In particular, $f$ is injective, so equality of the two images implies equality of the two points:
\begin{align*}
a_0+v=a_0.
\end{align*}
Finally, the affine action of $V$ on $A$ is free: the only vector that fixes a point is $0_V$. Therefore $v=0_V$. We have shown that every vector in the kernel of $L$ is zero, so $L$ is injective.
[/guided]
[/step]
[step:Prove that the linear part is surjective]
Let $w \in W$. Choose a point $a_0 \in A$. Since $f$ is surjective, there exists $a \in A$ such that
\begin{align*}
f(a)=f(a_0)+w.
\end{align*}
Because $A$ is modeled on $V$, there is a unique vector $v \in V$ such that
\begin{align*}
a=a_0+v.
\end{align*}
Using the defining identity for the linear part of $f$, we obtain
\begin{align*}
f(a)=f(a_0+v)=f(a_0)+L(v).
\end{align*}
Comparing this with $f(a)=f(a_0)+w$ and using freeness of the affine action of $W$ on $B$, we get $L(v)=w$. Since $w \in W$ was arbitrary, $L$ is surjective. Together with injectivity, $L:V \to W$ is a vector-space isomorphism.
[/step]
[step:Write the affine subspace as a translate of its direction space]
Let
\begin{align*}
D:=\operatorname{dir}(C) \subset V.
\end{align*}
Since $C$ is a nonempty affine subspace of $A$, choose a point $c_0 \in C$. By the definition of the direction space of an affine subspace, $D$ is a linear subspace of $V$ and
\begin{align*}
C=c_0+D.
\end{align*}
Equivalently, a point $c \in A$ belongs to $C$ if and only if there exists $d \in D$ such that
\begin{align*}
c=c_0+d.
\end{align*}
[/step]
[step:Compute the image of the affine subspace]
We claim that
\begin{align*}
f(C)=f(c_0)+L(D).
\end{align*}
First let $y \in f(C)$. Then there exists $c \in C$ such that $y=f(c)$. Since $C=c_0+D$, there exists $d \in D$ with $c=c_0+d$. Therefore
\begin{align*}
y=f(c_0+d)=f(c_0)+L(d).
\end{align*}
Thus $y \in f(c_0)+L(D)$.
Conversely, let $y \in f(c_0)+L(D)$. Then there exists $d \in D$ such that
\begin{align*}
y=f(c_0)+L(d).
\end{align*}
Since $f$ is affine with linear part $L$,
\begin{align*}
y=f(c_0+d).
\end{align*}
Because $d \in D$ and $C=c_0+D$, the point $c_0+d$ lies in $C$. Hence $y \in f(C)$. This proves
\begin{align*}
f(C)=f(c_0)+L(D).
\end{align*}
[guided]
The point of choosing $c_0 \in C$ is that every point of $C$ can now be described by a displacement vector in the direction space $D$. We prove the equality
\begin{align*}
f(C)=f(c_0)+L(D)
\end{align*}
by proving both inclusions.
For the first inclusion, let $y \in f(C)$. By definition of image, there exists $c \in C$ such that $y=f(c)$. Since $C=c_0+D$, there exists $d \in D$ with
\begin{align*}
c=c_0+d.
\end{align*}
Now apply the defining identity for the linear part of $f$:
\begin{align*}
f(c_0+d)=f(c_0)+L(d).
\end{align*}
Therefore
\begin{align*}
y=f(c)=f(c_0)+L(d),
\end{align*}
with $d \in D$. This means $y \in f(c_0)+L(D)$.
For the reverse inclusion, let $y \in f(c_0)+L(D)$. By definition of this translate, there exists $d \in D$ such that
\begin{align*}
y=f(c_0)+L(d).
\end{align*}
Again using affineness of $f$, the right-hand side is exactly
\begin{align*}
f(c_0+d).
\end{align*}
Because $d \in D$ and $C=c_0+D$, the point $c_0+d$ belongs to $C$. Hence $y=f(c_0+d)$ is an element of $f(C)$. We have proved both inclusions, so
\begin{align*}
f(C)=f(c_0)+L(D).
\end{align*}
[/guided]
[/step]
[step:Identify the direction space of the image]
Since $D$ is a linear subspace of $V$ and $L:V \to W$ is linear, the set $L(D)$ is a linear subspace of $W$. The equality
\begin{align*}
f(C)=f(c_0)+L(D)
\end{align*}
therefore expresses $f(C)$ as a translate in $B$ of the linear subspace $L(D) \subset W$. Hence $f(C)$ is a nonempty affine subspace of $B$, with direction space
\begin{align*}
\operatorname{dir}(f(C))=L(D).
\end{align*}
Substituting $D=\operatorname{dir}(C)$ gives
\begin{align*}
\operatorname{dir}(f(C))=L(\operatorname{dir}(C)).
\end{align*}
This proves the theorem.
[/step]