[proofplan]
The proof has three logical movements. First, we shrink to an affine neighbourhood of $p$ to obtain finite generation of $\Omega_{C, p}$ over the Noetherian local ring $\mathcal{O}_{C, p}$ — without finite generation, Nakayama's lemma cannot be applied. Second, we work modulo the maximal ideal: by base change and the [Kähler Differentials of a Curve Function Field](/theorems/2181) result applied to the function field $K(C)$, the image of $dt_p$ generates $\Omega_{C, p}/\mathfrak{m}_p \Omega_{C, p}$ as a one-dimensional vector space over the residue field $k$. Third, [Nakayama's Lemma (Special Case)](/theorems/2168) lifts this generation modulo $\mathfrak{m}_p$ to generation over $\mathcal{O}_{C, p}$ itself, and freeness follows from rank considerations against the function field.
[/proofplan]
[step:Localise to an affine neighbourhood of $p$ to obtain finite generation]
Since $C$ is a smooth projective curve, $p$ admits an affine open neighbourhood $U \subset C$ — that is, an open subset $U \ni p$ such that $U$ is isomorphic to an affine variety. Let $A := \mathcal{O}_C(U)$ be the coordinate ring of $U$. Then $A$ is a finitely generated $k$-algebra (because $U$ is an affine variety over $k$) and a Noetherian integral domain (because $A$ is a localisation of a polynomial ring quotient, or more concretely, because finitely generated $k$-algebras over a field are Noetherian by the Hilbert basis theorem and integral domains because $C$ is irreducible).
The local ring $\mathcal{O}_{C, p}$ is the localisation $A_{\mathfrak{p}}$ at the prime ideal $\mathfrak{p}$ corresponding to $p$. The module of Kähler differentials commutes with localisation:
\begin{align*}
\Omega_{C, p} = \Omega_{\mathcal{O}_{C, p}/k} = \Omega_{A/k} \otimes_A \mathcal{O}_{C, p} = (\Omega_{A/k})_{\mathfrak{p}}.
\end{align*}
The module $\Omega_{A/k}$ is finitely generated over $A$ — because $A$ is a finitely generated $k$-algebra, say $A = k[x_1, \ldots, x_N]/I$, and $\Omega_{A/k}$ is generated by the symbols $dx_1, \ldots, dx_N$ as an $A$-module (by the chain rule: every $f \in A$ is a polynomial expression in $x_1, \ldots, x_N$, so $df$ is an $A$-linear combination of $dx_1, \ldots, dx_N$). Localisation of a finitely generated module is finitely generated, so $\Omega_{C, p}$ is finitely generated over the Noetherian local ring $\mathcal{O}_{C, p}$.
[guided]
Why must we shrink to an affine neighbourhood? The module $\Omega_{C, p}$ is defined locally — but the local ring $\mathcal{O}_{C, p}$ is not a finitely generated $k$-algebra (it is a localisation of one), and we want to express $\Omega_{C, p}$ as a finitely generated module over $\mathcal{O}_{C, p}$ to apply Nakayama. The path is:
\begin{enumerate}
\item Pick an affine open $U \ni p$ with coordinate ring $A$ (a finitely generated $k$-algebra).
\item Note that $\Omega_{A/k}$ is finitely generated over $A$ — indeed, generated by $dx_1, \ldots, dx_N$ where $x_1, \ldots, x_N$ are generators of $A$ as a $k$-algebra.
\item Localise at $\mathfrak{p}$: localisation preserves finite generation, so $(\Omega_{A/k})_{\mathfrak{p}}$ is finitely generated over $A_{\mathfrak{p}} = \mathcal{O}_{C, p}$.
\item Use the formula $(\Omega_{A/k})_{\mathfrak{p}} = \Omega_{A_{\mathfrak{p}}/k} = \Omega_{C, p}$ — Kähler differentials commute with localisation.
\end{enumerate}
This is a standard recipe for studying local properties of $\Omega$: pull back to the affine setting, where everything is a quotient of a polynomial ring, and exploit finite generation.
\textbf{Why does $p$ admit an affine open?} Smooth projective curves are quasi-projective, so every point has an affine open neighbourhood — concretely, intersect $C$ with the complement of a hyperplane $V(L) \subset \mathbb{P}^N_k$ not containing $p$, giving an affine piece $C \cap \mathbb{P}^N_k \setminus V(L)$.
[/guided]
[/step]
[step:Compute $\Omega_{C, p}/\mathfrak{m}_p \Omega_{C, p}$ via base change to the function field]
Consider the function field $K := K(C) = \operatorname{Frac}(\mathcal{O}_{C, p}) = \operatorname{Frac}(A)$. The localisation of $\mathcal{O}_{C, p}$ at the zero ideal is $K$, and base-changing $\Omega_{C, p}$ to $K$ gives:
\begin{align*}
\Omega_{C, p} \otimes_{\mathcal{O}_{C, p}} K = \Omega_{K/k}.
\end{align*}
By [Kähler Differentials of a Curve Function Field](/theorems/2181), applied to $K = K(C)$ as a finite separable extension of some $k(t)$ — the hypotheses are satisfied because $C$ is a smooth projective curve over the algebraically closed field $k$, so $K(C)$ has transcendence degree $1$ over $k$ and is finite separable over $k(t)$ for any transcendental $t \in K(C)$ (separability is automatic in characteristic $0$, and is part of the smoothness assumption in characteristic $p > 0$ — in fact the existence of a separating transcendence basis is equivalent to smoothness for curves over algebraically closed $k$) — we have $\dim_K \Omega_{K/k} = 1$, with $dt_p$ a $K$-basis (since $t_p \in K(C)$ is transcendental over $k$, as the uniformiser at $p$ has order $1$ at $p$ and hence is not in $k$).
\textbf{Sub-claim:} The image of $dt_p$ in $\Omega_{C, p}/\mathfrak{m}_p \Omega_{C, p}$ is a basis over the residue field $\mathcal{O}_{C, p}/\mathfrak{m}_p \cong k$.
[claim:The image of $dt_p$ generates $\Omega_{C, p}/\mathfrak{m}_p \Omega_{C, p}$ over $k$, and $\dim_k \Omega_{C, p}/\mathfrak{m}_p \Omega_{C, p} = 1$]
[proof]
Consider the right-exact base change sequence: for any $\mathcal{O}_{C, p}$-module $M$,
\begin{align*}
M / \mathfrak{m}_p M = M \otimes_{\mathcal{O}_{C, p}} (\mathcal{O}_{C, p}/\mathfrak{m}_p) = M \otimes_{\mathcal{O}_{C, p}} k.
\end{align*}
Apply this to $M = \Omega_{C, p}$:
\begin{align*}
\Omega_{C, p}/\mathfrak{m}_p \Omega_{C, p} = \Omega_{C, p} \otimes_{\mathcal{O}_{C, p}} k.
\end{align*}
The image of $dt_p$ in $\Omega_{C, p}$ corresponds to $dt_p \otimes 1$ in $\Omega_{C, p} \otimes k$. We must show this is nonzero and that any other element is a $k$-multiple of it.
\textbf{Nonzero.} If $dt_p \otimes 1 = 0$ in $\Omega_{C, p} \otimes k$, then $dt_p \in \mathfrak{m}_p \Omega_{C, p}$. Tensoring further with $K$ (recalling $\mathfrak{m}_p$ becomes the unit ideal in $K$, so $\mathfrak{m}_p \Omega_{C, p} \otimes_{\mathcal{O}_{C, p}} K = \mathfrak{m}_p \cdot \Omega_{K/k}$ — but this is not quite the right direction). Instead, argue dually: the element $dt_p \in \Omega_{K/k}$ is nonzero (it is a $K$-basis by Theorem 2181), and the canonical map $\Omega_{C, p} \to \Omega_{K/k}$ sends $dt_p \mapsto dt_p$ (the same symbol on both sides). So $dt_p \neq 0$ in $\Omega_{C, p}$.
To upgrade to $dt_p \otimes 1 \neq 0$ in $\Omega_{C, p}/\mathfrak{m}_p \Omega_{C, p}$: suppose $dt_p \in \mathfrak{m}_p \Omega_{C, p}$, so $dt_p = \sum_j r_j \omega_j$ with $r_j \in \mathfrak{m}_p$ and $\omega_j \in \Omega_{C, p}$. The image in $\Omega_{K/k}$ is $dt_p = \sum_j r_j \omega_j$ in $\Omega_{K/k}$, and dividing by the basis element $dt_p$ via the isomorphism $\Omega_{K/k} \cong K \cdot dt_p$ gives $1 = \sum_j r_j s_j$ where $s_j \in K$ is the $K$-coefficient of $\omega_j \otimes 1$. Now $r_j \in \mathfrak{m}_p$ has $\operatorname{ord}_p(r_j) \geq 1$, while $s_j \in K$ has $\operatorname{ord}_p(s_j)$ which may be anything in $\mathbb{Z}$. The product $r_j s_j$ has $\operatorname{ord}_p \geq 1 + \operatorname{ord}_p(s_j)$. For the sum to equal $1$ (which has $\operatorname{ord}_p(1) = 0$), some term must have $\operatorname{ord}_p \leq 0$ — but this requires $\operatorname{ord}_p(s_j) \leq -1$, i.e., $s_j$ has a pole at $p$. However, $\omega_j \in \Omega_{C, p}$, which is a finitely generated $\mathcal{O}_{C, p}$-module, so $\omega_j$ in $\Omega_{K/k}$ has bounded "denominator order" — but more precisely, since $\omega_j \in \Omega_{C, p}$ comes from a localisation argument, $s_j \in \mathcal{O}_{C, p}$ (we expand $\omega_j$ in the basis $dt_p$ of $\Omega_{K/k}$ and the coefficient is the image of an element of $\mathcal{O}_{C, p}$ under the natural map). Hence $\operatorname{ord}_p(s_j) \geq 0$, so $\operatorname{ord}_p(r_j s_j) \geq 1 \geq 1$ for all $j$, forcing $\sum r_j s_j \in \mathfrak{m}_p \cdot \mathcal{O}_{C, p}$, contradicting $\sum r_j s_j = 1$.
(More cleanly: the canonical map $\Omega_{C, p} \to \Omega_{K/k}$ sends $\omega_j$ to its $K$-realisation; let $s_j \in K$ be the unique scalar with $\omega_j = s_j \cdot dt_p$ in $\Omega_{K/k}$. Then $s_j$ is the value of a $\mathcal{O}_{C, p}$-linear functional on $\Omega_{C, p}$ — namely, the dual basis functional pairing with $dt_p$ — applied to $\omega_j$, hence $s_j \in \mathcal{O}_{C, p}$. Then $1 = \sum r_j s_j$ with $r_j \in \mathfrak{m}_p$ and $s_j \in \mathcal{O}_{C, p}$ would force $1 \in \mathfrak{m}_p$, contradicting $\mathfrak{m}_p \subsetneq \mathcal{O}_{C, p}$.)
\textbf{Generates.} Let $\bar{\omega} \in \Omega_{C, p}/\mathfrak{m}_p \Omega_{C, p}$ be any element, and lift to $\omega \in \Omega_{C, p}$. View $\omega \in \Omega_{C, p} \subseteq \Omega_{K/k} = K \cdot dt_p$, so $\omega = s \cdot dt_p$ for a unique $s \in K$. By the argument above (or directly: $\omega$ is in $\Omega_{C, p}$ if and only if its $K$-coefficient $s$ lies in $\mathcal{O}_{C, p}$, which is the precise local form of "regular at $p$"), $s \in \mathcal{O}_{C, p}$. Reducing modulo $\mathfrak{m}_p$: $\bar{\omega} = \bar{s} \cdot \overline{dt_p}$ with $\bar{s} \in k$. Hence $\Omega_{C, p}/\mathfrak{m}_p \Omega_{C, p}$ is spanned by $\overline{dt_p}$ over $k$.
\textbf{One-dimensional.} The image $\overline{dt_p}$ is nonzero and spans, so $\dim_k \Omega_{C, p}/\mathfrak{m}_p \Omega_{C, p} = 1$.
[/proof]
[/claim]
[/step]
[step:Apply Nakayama to lift generation modulo $\mathfrak{m}_p$ to generation over $\mathcal{O}_{C, p}$]
By the claim in Step 2, $\Omega_{C, p}/\mathfrak{m}_p \Omega_{C, p}$ is generated by the image of $dt_p$ as a $k$-vector space. Equivalently, the $\mathcal{O}_{C, p}$-submodule
\begin{align*}
N := \mathcal{O}_{C, p} \cdot dt_p \subseteq \Omega_{C, p}
\end{align*}
satisfies $N + \mathfrak{m}_p \Omega_{C, p} = \Omega_{C, p}$, i.e., $\Omega_{C, p}/N$ has $\mathfrak{m}_p \cdot (\Omega_{C, p}/N) = \Omega_{C, p}/N$.
Since $\Omega_{C, p}$ is finitely generated over $\mathcal{O}_{C, p}$ (Step 1), the quotient $\Omega_{C, p}/N$ is also finitely generated over $\mathcal{O}_{C, p}$. The hypotheses of [Nakayama's Lemma (Special Case)](/theorems/2168) — local ring $\mathcal{O}_{C, p}$ with maximal ideal $\mathfrak{m}_p$, finitely generated $\mathcal{O}_{C, p}$-module $\Omega_{C, p}/N$, satisfying $\mathfrak{m}_p \cdot (\Omega_{C, p}/N) = \Omega_{C, p}/N$ — are all met. The lemma yields $\Omega_{C, p}/N = 0$, i.e.,
\begin{align*}
\Omega_{C, p} = N = \mathcal{O}_{C, p} \cdot dt_p.
\end{align*}
[guided]
This is the canonical Nakayama-lift trick: a finitely generated module $M$ over a local ring $(R, \mathfrak{m})$ is generated by elements $x_1, \ldots, x_n$ if and only if their images $\bar{x}_1, \ldots, \bar{x}_n$ generate $M/\mathfrak{m} M$ over $R/\mathfrak{m}$. The "if" direction is exactly Nakayama, and that is the direction we need.
\textbf{Set up Nakayama precisely.} Define $N := R \cdot dt_p \subseteq \Omega_{C, p}$. From Step 2, $\Omega_{C, p}/\mathfrak{m}_p \Omega_{C, p}$ is one-dimensional over $k$ and spanned by $\overline{dt_p}$. So every $\omega \in \Omega_{C, p}$ has $\bar{\omega} = c \overline{dt_p}$ for some $c \in k$, i.e., $\omega - c \cdot dt_p \in \mathfrak{m}_p \Omega_{C, p}$, i.e., $\omega \in N + \mathfrak{m}_p \Omega_{C, p}$. Hence $\Omega_{C, p} = N + \mathfrak{m}_p \Omega_{C, p}$, equivalently $\mathfrak{m}_p (\Omega_{C, p}/N) = \Omega_{C, p}/N$.
\textbf{Apply Nakayama.} The module $\Omega_{C, p}/N$ is finitely generated over the local ring $\mathcal{O}_{C, p}$ (because the larger module $\Omega_{C, p}$ is, by Step 1, and quotients of finitely generated modules are finitely generated). The hypothesis $\mathfrak{m}_p (\Omega_{C, p}/N) = \Omega_{C, p}/N$ is exactly the input of Nakayama's lemma. The conclusion is $\Omega_{C, p}/N = 0$, hence $\Omega_{C, p} = N = \mathcal{O}_{C, p} \cdot dt_p$.
\textbf{Why does Nakayama require finite generation?} Without it, the conclusion fails. Counterexample (in the spirit of why we need Step 1): the field of fractions $K = \operatorname{Frac}(\mathcal{O}_{C, p})$, viewed as an $\mathcal{O}_{C, p}$-module, satisfies $\mathfrak{m}_p \cdot K = K$ (because $\mathfrak{m}_p \subsetneq K^\times$ has $K^\times$-multiples filling all of $K$), but $K \neq 0$. The escape valve is that $K$ is not finitely generated over $\mathcal{O}_{C, p}$.
[/guided]
[/step]
[step:Conclude freeness from rank against the function field]
We have shown $\Omega_{C, p} = \mathcal{O}_{C, p} \cdot dt_p$, so $\Omega_{C, p}$ is generated by $dt_p$ as an $\mathcal{O}_{C, p}$-module. To show this is a free generation (no nonzero relation $r \cdot dt_p = 0$ for $r \in \mathcal{O}_{C, p}$), tensor with $K = \operatorname{Frac}(\mathcal{O}_{C, p})$:
\begin{align*}
\Omega_{C, p} \otimes_{\mathcal{O}_{C, p}} K = \Omega_{K/k},
\end{align*}
where the isomorphism uses that Kähler differentials commute with localisation. By [Kähler Differentials of a Curve Function Field](/theorems/2181), $\Omega_{K/k} = K \cdot dt_p$ with $dt_p$ a $K$-basis, in particular $dt_p \neq 0$ in $\Omega_{K/k}$.
Suppose $r \cdot dt_p = 0$ in $\Omega_{C, p}$ for some $r \in \mathcal{O}_{C, p}$. Tensoring with $K$ (which preserves zeros): $r \cdot dt_p = 0$ in $\Omega_{K/k}$. Since $dt_p$ is a $K$-basis of $\Omega_{K/k}$, this forces $r = 0$ in $K$, hence $r = 0$ in $\mathcal{O}_{C, p}$ (the natural map $\mathcal{O}_{C, p} \to K$ is injective because $\mathcal{O}_{C, p}$ is an integral domain).
Therefore $dt_p$ is a free generator of $\Omega_{C, p}$ over $\mathcal{O}_{C, p}$, and $\Omega_{C, p}$ is a free $\mathcal{O}_{C, p}$-module of rank one with basis $dt_p$:
\begin{align*}
\Omega_{C, p} = \mathcal{O}_{C, p} \cdot dt_p, \qquad \text{free of rank one}.
\end{align*}
This completes the proof.
[/step]