To subdivide longer proofs of theorems, I use two list environments defined using enumitem: pfsteps for numbered steps and pfparts for labeled parts.
Horizontal space problems
1) In the pfsteps enumerate list, there seems to be a bit too much horizontal space after the colon that follows the step number — more space than would follow a colon in ordinary text.
2) In both the pfsteps enumerate list and the pfparts description list, there is definitely too much horizontal space between "Proof" and the first label of the list.
Questions
Problem 1) can be fixed by using something like the commented-out line \hspace{-1pt} after the colon in the definition of label for pfsteps. But is there a nicer way to decrease this space?
How can Problem 2) be fixed, for both the pfsteps and the pfparts list environments.
Sample source
\documentclass[12pt]{memoir}
\usepackage{amsthm}
% Indent ``Proof.''
\usepackage{xpatch}
\newlength{\normalparindent}
\AtBeginDocument{\setlength{\normalparindent}{\parindent}}
\xpatchcmd{\proof}{\hskip\labelsep}{\hskip\labelsep\hskip\normalparindent}{}{}
\let\oldproofname=\proofname
\renewcommand{\proofname}{\sffamily\bfseries{\oldproofname}}
\usepackage{enumitem}
\newlist{pfsteps}{enumerate}{3}
\setlist[pfsteps,1]{%
%label=\sffamily{Step {\arabic*}:\hspace{-1pt}},
label=\sffamily{Step {\arabic*}:},
ref=\normalfont{\arabic**},
wide,itemsep=0pt,topsep=0pt
}
\newlist{pfparts}{description}{1}
\setlist[pfparts,1]{%
font=\normalfont\textsf,
itemindent=0pt,
wide,
itemsep=0pt,topsep=2pt,
}
\begin{document}
Proof using \verb!pfsteps! enumerate list.
\begin{proof}
\begin{pfsteps}
\item do this first. The way to begin is to start at the very beginning and use the definitions involved to get going.
\item do this next. After the initial step, we proceed by showing something interesting next.
\item conclude with this. That's it! \qedhere
\end{pfsteps}
\end{proof}
\bigskip
Proof using \verb!pfparts! description list.
\begin{proof}
\begin{pfparts}
\item[Sufficiency.] First we show that the stated condition is sufficient for the conclusion to hold.
\item[Necessity.] To conclude the proof we show that the stated condition is a necessary condition for the conclusion. \qedhere
\end{pfparts}
\end{proof}
\bigskip
For comparison, a proof that is not divided into steps or parts.
\begin{proof}
Here is the proof of the main result.
%
\end{proof}
\end{document}
Output
In the output shown below, the red arrows point to excessive space. (And for comparison, the green arrow points to the normal space after a "Proof."

proofenvironment. The indentedStepleaves an disrupted look of the text – Jan 15 '17 at 17:21\mbox{}after\begin{proof}? – murray Jan 15 '17 at 17:34leftmargin=*with my definedenumitemenvironments unfortunately destroys the normal indentation of my labels, due I think to the necessary (I think) inclusion of thewidesetting. The extra space preceding the label that needs to be removed should only affect the label of the first item in the list. – murray Jan 15 '17 at 20:13\begin{pfsteps}[leftmargin=*], end the environment after the 1st item, restart it with\begin{pfsteps}[resume]. But this is certainly a verbose and awkward thing to have to do while coding a proof! What still seems to be lacking is a way, when creating the list macro, to treat the 1st item differently. – murray Jan 15 '17 at 21:13\leavemodetrick suggested inamsthmdoc. – murray Jan 15 '17 at 21:18