Solution (source code)

= Solution

A <four-vector> is a collection of four components $A^\mu=(A^0,\mathbf A)$ that transforms by the same <Lorentz transformation> as $(ct,\mathbf x)$. Use the <metric signature> $(-,+,+,+)$. The <Lorentzian inner product> is
$$
A\cdot B=-A^0B^0+A^1B^1+A^2B^2+A^3B^3.
$$
A nonzero <four-vector> is a <timelike vector>, <null vector> or <spacelike vector> according as $A\cdot A$ is negative, zero or positive. Reversing the <metric signature> reverses the signs used to name these three classes, without changing their geometric meaning.

For a frame moving at <speed> $v$ along the positive $x$ axis, write $\beta=v/c$ and use the <Lorentz factor> $\gamma=(1-\beta^2)^{-1/2}$. The component <Lorentz transformation> is
$$
\boxed{A'^0=\gamma(A^0-\beta A^1),\quad A'^1=\gamma(A^1-\beta A^0),\quad A'^2=A^2,\quad A'^3=A^3.}
$$
Expanding the first two squares gives
$$
-(A'^0)^2+(A'^1)^2=\gamma^2(1-\beta^2)\bigl(-(A^0)^2+(A^1)^2\bigr)=-(A^0)^2+(A^1)^2.
$$
The other two components are unchanged, so $A'\cdot A'=A\cdot A$. Consequently \b[a <timelike vector> remains timelike under a <Lorentz transformation>].

For a nonzero <null vector>, $|\mathbf A|=|A^0|$ and $A^0\ne0$. Set $a=A^0$ and $\hat{\mathbf n}=\mathbf A/a$. Then $|\hat{\mathbf n}|=1$ and $A=a(1,\hat{\mathbf n})$. If the zero <four-vector> is included among <null vectors>, take $a=0$ and any <unit vector>.

For two future-pointing <null vectors>, write $A=a(1,\hat{\mathbf n})$ and $B=b(1,\hat{\mathbf m})$ with $a,b>0$. The <sum of future-pointing null vectors> satisfies
$$
(A+B)\cdot(A+B)=-2ab\bigl(1-\hat{\mathbf n}\cdot\hat{\mathbf m}\bigr)\leq0,
$$
because the ordinary <inner product> of two <unit vectors> is at most one. \b[The sum is null if their spatial directions coincide, and timelike otherwise.] Its positive time component makes the sum nonzero and future-pointing.