I've been reading The "Two-State Implicit Filter – Recursive Estimation for Mobile Robots" by Bloesch. The gist of the paper is it tries to find the balance between a Kalman Filter and a Batch optimizer for robotics applications, and introduces a Two State Implicit Filter. Essentially a sliding window estimator of size 2.
The system of equations given (Eq (25) in the paper) to solve for states $x^{k}_{k - 1}$ and $x^{k}_{k}$ are given as:
\begin{equation} \begin{bmatrix} P^{-1}_{k-1} + A^{T} A & A^{T} B \\ B^{T} A & B^{T} B \end{bmatrix} \begin{bmatrix} x^{k}_{k - 1} \\ x^{k}_{k} \end{bmatrix} = \begin{bmatrix} P^{-1}_{k-1} x^{k-1}_{k-1} - A^{T} b_{k} \\ -B^{T} b_k \end{bmatrix} \end{equation}
Then the author uses the Schur complement to marginalize the previous state $x^{k}_{k-1}$, since we are only interested in obtaining the latest state $x^{k}_{k}$. What I do not understand is how the author managed to go from:
\begin{equation} P^{-1}_{k} x^{k}_{k} = B^{T} (A(P^{-1}_{k-1} + A^{T} A)^{-1} (A^{T} b_k - P^{-1}_{k-1} x^{k-1}_{k-1}) - b_k) \end{equation}
to:
\begin{equation} P^{-1}_{k} x^{k}_{k} = -B^{T} (I - A(P^{-1}_{k-1} + A^{T} A)^{-1} A^{T}) (A x^{k-1}_{k-1} + b_k) \end{equation}
In Eq (27) of the paper. Apologies if this is just a simple rearranging of terms, but I just don't see it.