[step:Construct a spline from arbitrary coordinates]Fix arbitrary data $(y_0,\dots,y_{r-1},c_1,\dots,c_n)\in\mathbb{R}^{r+n}$. We construct a function $s:[a,b]\to\mathbb{R}$ in $S_r(x_0,\dots,x_n)$ whose image under $\Phi$ is this data.
First define numbers $y_{0,m}\in\mathbb{R}$ for $m\in\{0,\dots,r-1\}$ by $y_{0,m}=y_m$. Assume recursively that, for some $j\in\{1,\dots,n\}$, the left endpoint jet $(y_{j-1,0},\dots,y_{j-1,r-1})\in\mathbb{R}^r$ has been defined. Define a polynomial function $p_j:\mathbb{R}\to\mathbb{R}$ by
\begin{align*}
p_j(t)=\sum_{m=0}^{r-1}\frac{y_{j-1,m}}{m!}(t-x_{j-1})^m+\frac{c_j}{r!}(t-x_{j-1})^r.
\end{align*}
Then define the right endpoint jet by $y_{j,m}=p_j^{(m)}(x_j)$ for each $m\in\{0,\dots,r-1\}$.
Finally define $s:[a,b]\to\mathbb{R}$ by $s(t)=p_j(t)$ when $t\in[x_{j-1},x_j]$. This is well-defined at the knots because, for each interior knot $x_j$ with $j\in\{1,\dots,n-1\}$, the polynomial on the next interval is constructed so that
\begin{align*}
p_{j+1}^{(m)}(x_j)=y_{j,m}=p_j^{(m)}(x_j)
\end{align*}
for every $m\in\{0,\dots,r-1\}$. Therefore $s$ has matching derivatives of orders $0,\dots,r-1$ at every interior knot. More explicitly, for each such order the left-hand derivative from $p_j$ and the right-hand derivative from $p_{j+1}$ agree at $x_j$, so the glued piecewise-polynomial derivative is continuous at $x_j$. Hence $s\in C^{r-1}([a,b])$. Since each restriction $s|_{[x_{j-1},x_j]}$ agrees with $p_j\in\mathcal{P}_r$, we have $s\in S_r(x_0,\dots,x_n)$.
By construction, $s^{(m)}(x_0)=y_m$ for $m\in\{0,\dots,r-1\}$, and $p_j^{(r)}=c_j$ for $j\in\{1,\dots,n\}$. Hence $\Phi(s)=(y_0,\dots,y_{r-1},c_1,\dots,c_n)$.[/step]