%%
%% The LaTeX Companion, 3ed
%%
%% Example 2-4-18 on page I-92 in "Handling theorem-like environments".
%%
%% Copyright (C) 2022 Frank Mittelbach
%%
%% It may be distributed and/or modified under the conditions
%% of the LaTeX Project Public License, either version 1.3c
%% of this license or (at your option) any later version.
%%
%% See https://www.latex-project.org/lppl.txt for details.
%%

\documentclass{tlc3exa}
\pagestyle{empty}
\setcounter{page}{6}
\setlength\textwidth{171.0pt}


  \setlength\parindent{0pt}

  % loading and definitions here to save space in the book
  \usepackage{amsthm,cleveref}
  \crefname{thm}{theorem}{theorems}
  \crefname{lem}{lemma}{lemmas}
  \newtheorem{thm}{Theorem}  \newtheorem{lem}[thm]{Lemma}

  \AtEndDocument{%     we place the envs at the document end so that
                 %     they do not show up in the book and take up unnecessary space
    \newpage
    \begin{thm} A theorem.  \label{thm:a}\end{thm}
    \begin{lem} A lemma.    \label{lem:a}\end{lem}
    \begin{lem} Another one.\label{lem:b}\end{lem}
  }

%StartShownPreambleCommands
\usepackage{amsthm,cleveref}
% Otherwise same setup as in previous example ... 
%StopShownPreambleCommands

\begin{document}
\Cref{lem:b} is used to prove \cref{thm:a}.  \\
Now \cref{lem:a,lem:b} are typeset correctly.
\end{document}