Correct the given approximate solution ``z`` with respect to the
        linear system ``linear_system`` and the deflation space defined by
        ``U``.

def correct(self, z):
        '''Correct the given approximate solution ``z`` with respect to the
        linear system ``linear_system`` and the deflation space defined by
        ``U``.'''
        c = self.linear_system.Ml*(
            self.linear_system.b - self.linear_system.A*z)
        c = utils.inner(self.W, c, ip_B=self.ip_B)
        if self.Q is not None and self.R is not None:
            c = scipy.linalg.solve_triangular(self.R, self.Q.T.conj().dot(c))
        if self.WR is not self.VR:
            c = self.WR.dot(scipy.linalg.solve_triangular(self.VR, c))
        return z + self.W.dot(c)