How do I repeat a theorem number?

If you want to allow yourself to vary the text between the two occurrences, here's an alternative:

\documentclass{article}

\usepackage{amsthm}

\makeatletter
\newtheorem*{rep@theorem}{\rep@title}
\newcommand{\newreptheorem}[2]{%
\newenvironment{rep#1}[1]{%
 \def\rep@title{#2 \ref{##1}}%
 \begin{rep@theorem}}%
 {\end{rep@theorem}}}
\makeatother


\newtheorem{theorem}{Theorem}
\newreptheorem{theorem}{Theorem}
\newtheorem{lemma}{Lemma}
\newreptheorem{lemma}{Lemma}

\begin{document}

\begin{reptheorem}{myAmazingTheorem}
That theorem again
\end{reptheorem}

\begin{theorem}
\label{myAmazingTheorem}
A theorem
\end{theorem}
\begin{lemma}
\label{anInsignificantLemma}
A lemma
\end{lemma}

\begin{replemma}{anInsignificantLemma}
That theorem again
\end{replemma}


\end{document}

Probably needs a little tweaking to suit different theorem styles and the like.


What about the thmtools bundle? Check out page 6 of the guide: there's a 'restatable' environment.


Here's a solution I like even though it's not very clever. You simply temporarily redefine \thetheorem (or in your case, \thethm):

% in the introduction
{
\renewcommand{\thetheorem}{\ref{thm:associativity}}
\begin{theorem}
  Lorem ipsum ...
\end{theorem}
\addtocounter{theorem}{-1}
} % note: these braces are here to take advantage of LaTeX scoping ... 
  % \thetheorem is returned to its rightful definition outside of this group

% elsewhere
\begin{theorem} \label{thm:associativity}
  Lorem ipsum ...
\end{theorem}

You can also define an environment on the same principle

% repeat theorems, with amsthm 
% args = type,counter,reference
\newenvironment{repthm}[3] 
{ 
  \bgroup 
  \addtocounter{#2}{-1} 
  \expandafter\def\csname the#2\endcsname{\ref{#3}} 
  \def\foo{\end{#1}} 
  \begin{#1} 
} 
{ 
  \foo 
  \egroup 
}