[proofplan]
We prove the theorem by duality. The observability rank condition for $(C,A)$ is exactly the reachability rank condition for the transposed pair $(A^\top,C^\top)$. We then apply the state-feedback [pole placement theorem](/theorems/6395) to the dual pair, transpose the resulting closed-loop matrix, and use invariance of the characteristic polynomial under transposition. The converse follows by applying the same equivalence in reverse.
[/proofplan]
[step:Translate observability into reachability of the transposed pair]
Define the observability matrix $\mathcal{O}_{C,A} \in \mathbb{R}^{np \times n}$ by declaring its block in rows $kp+1$ through $(k+1)p$ to be $CA^k$ for each integer $k$ with $0 \leq k \leq n-1$. Thus $(C,A)$ is observable precisely when $\operatorname{rank}\mathcal{O}_{C,A}=n$.
Define the reachability matrix $\mathcal{R}_{A^\top,C^\top} \in \mathbb{R}^{n \times np}$ by declaring its block in columns $kp+1$ through $(k+1)p$ to be $(A^\top)^kC^\top$ for each integer $k$ with $0 \leq k \leq n-1$. Since $(A^k)^\top=(A^\top)^k$, the transpose of $\mathcal{O}_{C,A}$ is exactly $\mathcal{R}_{A^\top,C^\top}$. Therefore
\begin{align*}
\operatorname{rank}\mathcal{O}_{C,A}=\operatorname{rank}\mathcal{R}_{A^\top,C^\top}.
\end{align*}
Hence $(C,A)$ is observable if and only if the pair $(A^\top,C^\top)$ is reachable.
[guided]
The point of this step is to make the word "observable" into a rank condition that can be compared directly with the reachability condition for the dual system. Define the observability matrix $\mathcal{O}_{C,A} \in \mathbb{R}^{np \times n}$ by declaring its block in rows $kp+1$ through $(k+1)p$ to be $CA^k$ for each integer $k$ with $0 \leq k \leq n-1$. By definition, $(C,A)$ is observable exactly when this matrix has full column rank:
\begin{align*}
\operatorname{rank}\mathcal{O}_{C,A}=n.
\end{align*}
Now define the reachability matrix $\mathcal{R}_{A^\top,C^\top} \in \mathbb{R}^{n \times np}$ by declaring its block in columns $kp+1$ through $(k+1)p$ to be $(A^\top)^kC^\top$ for each integer $k$ with $0 \leq k \leq n-1$. For every such $k$, the transpose identity for products gives
\begin{align*}
(CA^k)^\top=(A^k)^\top C^\top=(A^\top)^kC^\top.
\end{align*}
Thus transposing the vertical block matrix $\mathcal{O}_{C,A}$ gives exactly the horizontal block matrix $\mathcal{R}_{A^\top,C^\top}$. Since a real matrix and its transpose have the same rank, we obtain
\begin{align*}
\operatorname{rank}\mathcal{O}_{C,A}=\operatorname{rank}\mathcal{R}_{A^\top,C^\top}.
\end{align*}
Consequently $\operatorname{rank}\mathcal{O}_{C,A}=n$ if and only if $\operatorname{rank}\mathcal{R}_{A^\top,C^\top}=n$. This is precisely the statement that $(C,A)$ is observable if and only if the transposed pair $(A^\top,C^\top)$ is reachable.
[/guided]
[/step]
[step:Use state-feedback pole placement on the dual pair]
Assume first that $(C,A)$ is observable. By the previous step, $(A^\top,C^\top)$ is reachable. Let $q \in \mathbb{R}[\lambda]$ be a monic polynomial of degree $n$. By the state-feedback pole placement theorem applied to the reachable pair $(A^\top,C^\top)$, there exists a matrix $K \in \mathbb{R}^{p \times n}$ such that
\begin{align*}
\chi_{A^\top-C^\top K}=q.
\end{align*}
Here we are citing a result not yet in the wiki: the State-Feedback Pole Placement Theorem.
[/step]
[step:Transpose the feedback gain to obtain an observer gain]
Define $L \in \mathbb{R}^{n \times p}$ by
\begin{align*}
L:=K^\top.
\end{align*}
Then
\begin{align*}
(A-LC)^\top=A^\top-C^\top L^\top=A^\top-C^\top K.
\end{align*}
For every matrix $M \in \mathbb{R}^{n \times n}$, the characteristic polynomial is invariant under transposition because
\begin{align*}
\chi_{M^\top}(\lambda)=\det(\lambda I_n-M^\top)=\det((\lambda I_n-M)^\top)=\det(\lambda I_n-M)=\chi_M(\lambda).
\end{align*}
Applying this to $M=A-LC$ gives
\begin{align*}
\chi_{A-LC}=\chi_{(A-LC)^\top}=\chi_{A^\top-C^\top K}=q.
\end{align*}
Thus every monic real polynomial of degree $n$ can be assigned as the characteristic polynomial of $A-LC$.
[/step]
[step:Recover observability from universal observer pole assignment]
Conversely, assume that for every monic polynomial $q \in \mathbb{R}[\lambda]$ of degree $n$ there exists $L \in \mathbb{R}^{n \times p}$ such that $\chi_{A-LC}=q$. Let $q \in \mathbb{R}[\lambda]$ be arbitrary and monic of degree $n$. Choose $L \in \mathbb{R}^{n \times p}$ with $\chi_{A-LC}=q$, and define $K \in \mathbb{R}^{p \times n}$ by
\begin{align*}
K:=L^\top.
\end{align*}
Using the same transposition identity as above,
\begin{align*}
A^\top-C^\top K=(A-LC)^\top.
\end{align*}
Therefore
\begin{align*}
\chi_{A^\top-C^\top K}=\chi_{(A-LC)^\top}=\chi_{A-LC}=q.
\end{align*}
Thus every monic real polynomial of degree $n$ is assignable by state feedback for the pair $(A^\top,C^\top)$. By the converse direction of the state-feedback pole placement theorem, the pair $(A^\top,C^\top)$ is reachable. By the rank equivalence proved in the first step, $(C,A)$ is observable. This proves the equivalence.
[/step]