\begin{figure}
    \centering
    \begin{tikzpicture}[node distance=3cm]
    \node (lemma-gradient-upper-bound) [block] {\Cref{lemma:gradient-upper-bound}} ;
    \node (lem-bound-norm-gradient-wrt-response) [block, below of=lemma-gradient-upper-bound] {\Cref{lem:bound-norm-gradient-wrt-response}} ;
    \node (lem-bound-norm-gradient-wrt-features) [block, right of=lem-bound-norm-gradient-wrt-response] {\Cref{lem:bound-norm-gradient-wrt-features}} ;
    \node (lemma-y-xbeta) [block, below of=lem-bound-norm-gradient-wrt-response] {\Cref{lemma:y-xbeta}} ;
    \node (lemma-gradx) [block, right of=lemma-y-xbeta] {\Cref{lemma:gradx}} ;
    \node (lemma-V) [block, right of=lemma-gradx] {\Cref{lemma:V}} ;
    \node (cor-y-Xbeta) [block, below of=lemma-y-xbeta] {\Cref{cor:y-Xbeta}} ;
    \node (lemma-upper-bound-beta) [block, right of=cor-y-Xbeta] {\Cref{lemma:upper-bound-beta}} ;
    \draw [arrow] (lem-bound-norm-gradient-wrt-features) -- (lemma-gradient-upper-bound) ;
    \draw [arrow] (lem-bound-norm-gradient-wrt-response) -- (lemma-gradient-upper-bound) ;
    \draw [arrow] (lemma-y-xbeta) -- (lem-bound-norm-gradient-wrt-response) ;
    \draw [arrow] (lemma-gradx) -- (lem-bound-norm-gradient-wrt-features) ; 
    \draw [arrow] (lemma-gradx) -- (lem-bound-norm-gradient-wrt-response) ; 
    \draw [arrow] (lemma-V) -- (lem-bound-norm-gradient-wrt-features) ;
    \draw [arrow] (cor-y-Xbeta) -- (lemma-y-xbeta) ;
    \draw [arrow] (lemma-upper-bound-beta) -- (cor-y-Xbeta) ;
    \end{tikzpicture}
    \caption{Schematic for the proof of \Cref{lemma:gradient-upper-bound}
    }
    \label{fig:schematic-proof-lemma:gradient-upper-bound}
\end{figure}