Restating theorems?



In longer papers, I like to state results in an early section and then
restate them before the proof later on. Right now, I'm using the
following to do this:

\newcommand{\restateenv}{ZZZ}
\newenvironment{restate}[1]{
\renewcommand{\restateenv}{restate.#1}
\newtheorem*{\restateenv}{\refthm{#1}}
\begin{\restateenv}
}{\end{\restateenv}}



It works pretty well, but I have to copy the text of the theorem. To
get the numbering I want, I do

\begin{theorem}[{\bf Main Theorem}]
\label{main}
Something or other.
\end{theorem}

[ ... ]

\restate{main}[{\bf Main Theorem}]
Something or other.
\end{restate}

What I'd really like is to have something where I could do:

\restate{main}

[ ... ]

\begin{state}{main}[{\bf Main Theorem}]
Something or other.
\end{state}

And get the same effect. Is this possible?

^L

.