LaTeX: Restate theorems, etc.

For when your mathematical creations need an alter ego… #latex #theorems #restate

In some circumstances, one might want to repeat a theorem, or a lemma, or a definition in more than one place (e.g. to state a theorem in the main text, while relegating the proof to an appendix, but wanting to restate the theorem prior to the proof). The problem is getting LaTeX to assign the same number to the new statement. My original way of accomplishing this had one important drawback: you could not refer (e.g., through a link) to the repeated theorem/etc.—but I found another way that allows one to do this. And best of all, the way to use it is exactly the same—so you just need to modify your preamble.

This is the code that goes in said preamble:

\newtheorem{rdef}{Definition}
\newtheorem{rlemma}{Lemma}
\newtheorem{rthm}{Theorem}
\newenvironment{repdefinition}[1]
  {\renewcommand\therdef{\ref*{#1}}\rdef}
  {\endrdef}
\newenvironment{replemma}[1]
  {\renewcommand\therlemma{\ref*{#1}}\rlemma}
  {\endrlemma}
\newenvironment{reptheorem}[1]
  {\renewcommand\therthm{\ref*{#1}}\rthm}
  {\endrthm}

As a quick inspection of the above code will show, it allows for the restatement of definitions, lemmas, and theorems—but the user can easily modify this to suit his own needs. And as I said above, usage is the same as in my original answer: to restate say, a theorem, where the original \label is thm:awesome, do:

\begin{reptheorem}{thm:awesome}
  Here is the theorem restated: ...
\end{reptheorem}

For lemmas, or definitions, replace with replemma or repdefinition respectively. These new theorems/etc. will get the same number as the original ones—but the original caveat still applies: any patches to the theorem, etc., environments—e.g. making \emph{} yield bold upright text—may need to be redone for these new environments.

Caveat. A limitation of this approach—as well as that of the original strategy—is that the text comprising the theorem or whatever has to be copied to the location where it is to be restated. So if it needs to be changed, it has to be changed in all locations. In practice, this is not much of a hurdle, because usually theorems/etc. are repeated at most once (usually just before proving them in an appendix, when in the main text the result is stated without proof). But your mileage may vary…

ORIGINAL ANSWER

In some circumstances, one might want to repeat a theorem, or a lemma, or a definition in more than one place (e.g. to state a theorem in the main text, while relegating the proof to an appendix, but wanting to restate the theorem prior to the proof). The problem is getting LaTeX to assign the same number to the new statement—and here is one way to do just that. First, add this to the preamble:

\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

Then, after the declarations above, add:

\newreptheorem{theorem}{Theorem}
\newreptheorem{lemma}{Lemma}
\newreptheorem{definition}{Definition}

Now, to restate say, a theorem, where the original \label is thm:awesome, do:

\begin{reptheorem}{thm:awesome}
  Here is the theorem restated: ...
\end{reptheorem}

This new theorem will get the same number as the original one. For lemmas, or definitions, replace with replemma or repdefinition respectively. Note that any patches to the theorem, etc., environments—e.g. making \emph{} yield bold upright text—may need to be redone for these new environments.

June 26, 2023. Got feedback? See the contact page.

*   *   *

Update, December 10, 2023. Added a clarification about the need to actually repeat the content of the theorem or whatever, when restating it…

Update, July 31, 2023. Added a new way of restating theorems, etc., which allows one to refer back to the restated environment—something the original solution did not allow.