[proofplan]
The covering map $\varepsilon: \mathbb{R} \to S^1$, $t \mapsto e^{it}$, is a local homeomorphism with kernel $2\pi\mathbb{Z}$. We use it to lift $\varphi$ to a continuous function $\psi: \mathbb{R} \to \mathbb{R}$ satisfying $\varepsilon \circ \psi = \varphi$ and $\psi(0) = 0$. The homomorphism property of $\varphi$ forces a defect $h(x, y) := \psi(x + y) - \psi(x) - \psi(y)$ that maps continuously into the discrete kernel $2\pi\mathbb{Z}$, hence is constant; evaluating at $(0, 0)$ shows $h \equiv 0$, so $\psi$ is itself an additive homomorphism. The classification of continuous additive homomorphisms $\mathbb{R} \to \mathbb{R}$ then yields $\psi(x) = cx$, whence $\varphi(x) = e^{icx}$.
[/proofplan]
[step:Define the covering map $\varepsilon: \mathbb{R} \to S^1$ and identify its kernel]
Define
\begin{align*}
\varepsilon: \mathbb{R} &\to S^1, \\
t &\mapsto e^{it}.
\end{align*}
This is a continuous group homomorphism from $(\mathbb{R}, +)$ to $(S^1, \cdot)$, and $\ker(\varepsilon) = 2\pi\mathbb{Z}$ (the only solutions of $e^{it} = 1$ in $\mathbb{R}$). For each $z_0 \in S^1$, choose any $t_0 \in \mathbb{R}$ with $\varepsilon(t_0) = z_0$; then $\varepsilon$ restricts to a homeomorphism from the open interval $(t_0 - \pi, t_0 + \pi)$ onto $S^1 \setminus \{-z_0\}$. In particular, $\varepsilon$ is a local homeomorphism.
[/step]
[step:Lift $\varphi$ to a continuous map $\psi: \mathbb{R} \to \mathbb{R}$ with $\psi(0) = 0$ and $\varepsilon \circ \psi = \varphi$]
Since $\varphi$ is a homomorphism, $\varphi(0) = 1 \in S^1$. We construct a continuous map
\begin{align*}
\psi: \mathbb{R} &\to \mathbb{R}
\end{align*}
satisfying $\psi(0) = 0$ and $\varepsilon(\psi(x)) = \varphi(x)$ for every $x \in \mathbb{R}$.
*Local lifts.* Set $V := \varepsilon((-\pi, \pi)) = S^1 \setminus \{-1\}$ and let $\log_0: V \to (-\pi, \pi)$ be the inverse homeomorphism (the principal branch of the argument). Then $\log_0$ is continuous and $\varepsilon \circ \log_0 = \mathrm{id}_V$.
*Construction by interval-by-interval lifting.* Continuity of $\varphi$ at $0$ together with $\varphi(0) = 1$ provides $\delta > 0$ such that $\varphi([-\delta, \delta]) \subseteq V$. Define $\psi$ on $[-\delta, \delta]$ by $\psi(x) := \log_0(\varphi(x))$. Then $\psi(0) = \log_0(1) = 0$ and $\psi$ is continuous on $[-\delta, \delta]$.
For $x \in \mathbb{R}$ general, choose $N \in \mathbb{Z}_{>0}$ with $|x|/N \leq \delta$ and define
\begin{align*}
\psi(x) := N \cdot \log_0\bigl(\varphi(x/N)\bigr).
\end{align*}
We verify three points.
*(i) Independence of $N$.* If $N' \geq N$ also satisfies $|x|/N' \leq \delta$, then both $\log_0(\varphi(x/N))$ and $\log_0(\varphi(x/N'))$ lie in $(-\pi, \pi)$. The chain
\begin{align*}
\varepsilon\bigl(N \log_0(\varphi(x/N))\bigr) = \varphi(x/N)^N = \varphi(x), \qquad
\varepsilon\bigl(N' \log_0(\varphi(x/N'))\bigr) = \varphi(x)
\end{align*}
shows that the two candidate values differ by an element of $2\pi\mathbb{Z}$. Since both $N \log_0(\varphi(x/N))$ and $N' \log_0(\varphi(x/N'))$ depend continuously on $x$ and agree at $x = 0$ (both vanish), the integer-valued continuous difference is identically $0$ on the connected set on which both definitions apply, so the two values coincide.
*(ii) $\varepsilon \circ \psi = \varphi$.* By the homomorphism property, $\varepsilon(\psi(x)) = \varepsilon(\log_0(\varphi(x/N)))^N = \varphi(x/N)^N = \varphi(x)$.
*(iii) Continuity.* The map $x \mapsto N \log_0(\varphi(x/N))$ is a composition of continuous maps on the open set $\{x : |x|/N < \delta + \mathrm{small}\}$, hence continuous. Continuity on all of $\mathbb{R}$ follows because the local definitions for different $N$ agree on overlaps by (i).
[guided]
The path-lifting principle for the covering $\varepsilon: \mathbb{R} \to S^1$ asserts: any continuous $\varphi: \mathbb{R} \to S^1$ with $\varphi(0) = 1$ has a unique continuous lift $\psi: \mathbb{R} \to \mathbb{R}$ with $\psi(0) = 0$ and $\varepsilon \circ \psi = \varphi$. We construct it by hand.
Why is the construction local first? Because $\varepsilon$ is a local homeomorphism but not a global one: the global preimage of any point is the discrete set $t + 2\pi\mathbb{Z}$, so we cannot just write $\psi = \varepsilon^{-1} \circ \varphi$. The remedy is to choose a small enough neighbourhood of $0 \in S^1$ where $\varepsilon$ admits a continuous inverse — the principal branch $\log_0: S^1 \setminus \{-1\} \to (-\pi, \pi)$ — and use this inverse where $\varphi$ stays inside $S^1 \setminus \{-1\}$.
For an arbitrary $x \in \mathbb{R}$, $\varphi(x)$ may fail to lie in $S^1 \setminus \{-1\}$. The trick is to use the homomorphism property: $\varphi(x) = \varphi(x/N)^N$. By choosing $N$ large, we drive $x/N$ close to $0$, so $\varphi(x/N)$ is close to $1$ and lies in the chart where $\log_0$ is defined. We then multiply the lift back by $N$.
The independence-of-$N$ check (i) confirms this gives a well-defined function. The two candidate values $N \log_0(\varphi(x/N))$ and $N' \log_0(\varphi(x/N'))$ both lift $\varphi(x)$ under $\varepsilon$, so they differ by an element of $\ker(\varepsilon) = 2\pi\mathbb{Z}$. As $x$ varies continuously starting from $x = 0$, where they agree, the integer-valued continuous difference cannot jump, hence stays $0$.
This is exactly the path-lifting property for covering spaces — the abstract theorem encapsulates the construction we just performed by hand.
[/guided]
[/step]
[step:Show that the lift $\psi$ is itself an additive homomorphism]
Define
\begin{align*}
h: \mathbb{R}^2 &\to \mathbb{R}, \\
(x, y) &\mapsto \psi(x + y) - \psi(x) - \psi(y).
\end{align*}
We show $h \equiv 0$.
*$h$ takes values in $2\pi\mathbb{Z}$.* For every $(x, y) \in \mathbb{R}^2$, applying $\varepsilon$ and using the multiplicativity of $\varepsilon$ together with the homomorphism property of $\varphi$,
\begin{align*}
\varepsilon(h(x, y)) &= \varepsilon(\psi(x + y)) \cdot \varepsilon(\psi(x))^{-1} \cdot \varepsilon(\psi(y))^{-1} \\
&= \varphi(x + y) \cdot \varphi(x)^{-1} \cdot \varphi(y)^{-1} \\
&= \varphi(x + y) \cdot \varphi(x + y)^{-1} = 1.
\end{align*}
Hence $h(x, y) \in \ker(\varepsilon) = 2\pi\mathbb{Z}$ for all $(x, y) \in \mathbb{R}^2$.
*$h$ is continuous.* Each of $\psi(x + y)$, $\psi(x)$, $\psi(y)$ is a composition of continuous maps, so $h: \mathbb{R}^2 \to \mathbb{R}$ is continuous.
*$h$ is constant.* The image $h(\mathbb{R}^2) \subseteq 2\pi\mathbb{Z}$ is the continuous image of the connected set $\mathbb{R}^2$, hence connected. The only connected subsets of the discrete space $2\pi\mathbb{Z}$ (with the subspace topology from $\mathbb{R}$) are singletons.
*$h$ vanishes.* $h(0, 0) = \psi(0) - \psi(0) - \psi(0) = 0$ since $\psi(0) = 0$. Combined with $h$ constant, $h \equiv 0$.
Therefore $\psi(x + y) = \psi(x) + \psi(y)$ for all $x, y \in \mathbb{R}$.
[/step]
[step:Apply the classification of continuous additive homomorphisms $\mathbb{R} \to \mathbb{R}$]
The map $\psi: \mathbb{R} \to \mathbb{R}$ is continuous (Step 2) and additive (Step 3). By the [Classification of Continuous Additive Homomorphisms $\mathbb{R} \to \mathbb{R}$](/theorems/2469), there exists $c \in \mathbb{R}$ with $\psi(x) = cx$ for every $x \in \mathbb{R}$.
[/step]
[step:Compose with $\varepsilon$ to obtain $\varphi(x) = e^{icx}$]
For every $x \in \mathbb{R}$,
\begin{align*}
\varphi(x) = \varepsilon(\psi(x)) = \varepsilon(cx) = e^{i c x}.
\end{align*}
This is the claimed form, with $c = \psi(1) \in \mathbb{R}$.
[/step]