[guided]The useful quantity is the dual slack, so define $s \in E$ by
\begin{align*}
s := c-A^*y.
\end{align*}
This vector measures how far the dual constraint is from being tight. Because $x$ is primal feasible, it satisfies $Ax=b$. Therefore the dual objective value can be rewritten using the constraint:
\begin{align*}
(b,y)_F = (Ax,y)_F.
\end{align*}
Now we use the defining property of the adjoint map $A^*:F \to E$: for every $z \in E$ and every $w \in F$,
\begin{align*}
(Az,w)_F = (z,A^*w)_E.
\end{align*}
Applying this with $z=x$ and $w=y$ gives
\begin{align*}
(Ax,y)_F = (x,A^*y)_E.
\end{align*}
Since the [inner product](/page/Inner%20Product) on $E$ is symmetric, $(x,A^*y)_E=(A^*y,x)_E$. Hence
\begin{align*}
(b,y)_F = (A^*y,x)_E.
\end{align*}
Substituting this into the difference of objective values gives
\begin{align*}
(c,x)_E-(b,y)_F = (c,x)_E-(A^*y,x)_E.
\end{align*}
By bilinearity of the inner product in the first argument,
\begin{align*}
(c,x)_E-(A^*y,x)_E = (c-A^*y,x)_E.
\end{align*}
Using the definition of $s$, this becomes
\begin{align*}
(c,x)_E-(b,y)_F = (s,x)_E.
\end{align*}
So the whole primal-dual gap is encoded by a single cone pairing between the primal variable $x$ and the dual slack $s$.[/guided]