Adjoint methods for PDEs: a posteriori error analysis and postprocessing by duality | Synapse