Here's a solution that uses mathtools and ntheorem, though I would like to see what would be possible with amsthm. No guarantees this will work when proofs end with a numbered equation, though.
\documentclass{article}
\usepackage{mathtools}
\usepackage{amssymb,amsmath}
\usepackage[amsmath,thmmarks]{ntheorem}
\makeatletter
\gdef\endtrivlist{%
\@endtrivlist{\PotEndMark{\unskip\nobreak\hskip\labelsep\nobreak}}}
\gdef\@endtheorem{%
\expandafter
\ifx\csname\InTheoType Symbol\endcsname\@empty\setendmarkfalse\fi
\@endtrivlist{\ifsetendmark
\unskip\nobreak\hskip\labelsep\nobreak\csname\InTheoType Symbol\endcsname
\setendmarkfalse \fi}%
\ifsetendmark\OrganizeTheoremSymbol\else\global\setendmarktrue\fi
\csname\InTheoType @postwork\endcsname}
\makeatother
\qedsymbol{\ensuremath{\blacksquare}}
\theoremstyle{plain}
\theoremsymbol{}
\theoremheaderfont{\scshape}
\theorembodyfont{\itshape\mathtoolsset{mathic=true}}
\theoremseparator{.}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{lemma}[theorem]{Lemma}
\theoremheaderfont{\itshape}
\theorembodyfont{\upshape}
\theoremstyle{nonumberplain}
\theoremsymbol{\the\qedsymbol}
\newtheorem{proof}{Proof}
\begin{document}
\section{Section}
\begin{lemma}
If \(U\) or \(V\) then...
\begin{proof}
The Proof.
\end{proof}
\end{lemma}
\begin{theorem}
If \(U\) or \(V\) then...
\begin{proof}
The Proof
\begin{equation*}
Ax = b.
\end{equation*}
\end{proof}
\end{theorem}
\end{document}
