\documentclass[full]{l3doc}

\title{The \pkg{refproof} package}
\author{Maximilian Keßler}

\begin{document}

\maketitle

\begin{abstract}
  This package aims to at consistently numbering claims within proofs.
  For this purpose, take a valid \meta{label} when starting a proof,
  associating it with a theorem/lemma etc.~and enabling us to subnumber
  claims within this proof.
  We also provide some customizations for proofs.
\end{abstract}

\tableofcontents

\begin{documentation}


\section{Proofs}
\subsection{Old proofs}
\begin{environment}{oldproof}
  Behaves like \env{proof} from \pkg{amsmath}.
\end{environment}

\begin{environment}{oldsubproof}
  Behaves like \env{subproof} from \pkg{mkessler-subproof}.

  That is, behaves like the \pkg{amsmath} proof environment except that
  the shown keyword is \enquote{subproof} and we end the proof
  with a black instead of a white square.
\end{environment}

It is not recommended to use \env{oldproof} or \env{oldsubproof},
since these have no support for the \texttt{claim} management this
package provides.
They only exist for legacy reasons.

\subsection{Basic proofs}

Both of these have \texttt{claim} support,
which is explained later in \autoref{sec:claim-support}.

\begin{environment}{proof}
  \begin{syntax}
    \cs{begin}\{proof\}*\oarg{description}
  \end{syntax}
  The old \env{proof} environment has been modified slightly.
  We still accept a \meta{description}, but this will be given
  in parantheses after the usual \enquote{proof} keyword.

  Additionally, we accept an optional \enquote{star}, that will be visually
  displayed behind the \enquote{proof} keyword.

  When nested, that is, when inside a \env{proof} or \env{subproof} environment,
  the name will automatically change to \enquote{subproof}.
  Nesting works to an arbitrary depth.
\end{environment}

\begin{environment}{subproof}
  \begin{syntax}
    \cs{begin}\{subproof\}*\oarg{description}
  \end{syntax}

  Works like the \env{proof} environment, but will always be named
  \enquote{subproof} and finish with a black square.

  You will probably rarely need this.
\end{environment}

\subsection{Refproofs}

\begin{environment}{refproof}
  \begin{syntax}
    \cs{begin}\{refproof\}*\marg{label}\oarg{description}
  \end{syntax}
  For the optional \enquote{*} or the \meta{description}
  see the \env{proof} environment.

  The \meta{label} has to be a valid \LaTeX-known label that \cs{ref} would
  accept.
  This \env{refproof} is then associated with the corresponding
  theorem that \meta{label} refers to.
  It will state \enquote{Proof of \meta{reference}} at the beginning of
  the environment to indicate that this proof is associated with some
  specific environment.

  When the \pkg{hyperref} package is loaded, this is automatically
  detected and an \cs{autoref} command is used to also indicate
  the environment name in the reference.

  When \env{refproof} has been called with the same label before,
  the name will be adjusted to
  \enquote{Continuation of proof of \meta{reference}}
  automatically.

  Claim support is explained in \autoref{sec:claim-support}.
\end{environment}


\section{Claim support}
\label{sec:claim-support}

\begin{environment}{claim}
\begin{environment}{claim*}
  \begin{syntax}
    \cs{begin}\{claim*\}
  \end{syntax}
  The star in the environment name makes the claim not to be numbered.
\end{environment}
\end{environment}

The \env{proof}, \env{subproof} and \env{refproof} environment alter the
behavior of the claim numbering as follows:

\begin{itemize}
  \item The \env{proof} and \env{subproof} environment will reset the
    \texttt{claim} counter at their beginning.
    Claims will appear as \enquote{Claim 1}, \enquote{Claim 2},\ldots

    At the end of the environment, the previous counter is restored.
  \item The \env{refproof} environment will number claims within the
    proof and \emph{all of its continuations}.
    Additionally, claims will be numbered as 
    \enquote{\meta{reference}.C1}, \enquote{\meta{reference}.C2}
    where \meta{reference} is the numbering style of the \meta{label}
    that this proof is associated to.

    At the end of the environment, the previous counter is restored.
\end{itemize}

\section{Language support}

This package makes use of the \pkg{translator} package to provide
\pkg{babel}-sensitive translations dynamically throughout the document.
You need the
\texttt{%
  translator\allowbreak-proof\allowbreak-dictionary%
  \allowbreak-\meta{language}.dict
}
dictionary somewhere where \LaTeX can find it.
It should have shipped with this documentation and the package source.

Currently, only German and English are supported.
\end{documentation}


\section{\pkg{groupthm} integration}

This has not been implemented yet, but future features include:

\begin{itemize}
  \item Integrate the claim environment into the \texttt{star} and \texttt{starred}
    groups of \pkg{groupthm}.
  \item Integrate the optional stars of the \env{proof} etc into \pkg{groupthm},
    i.e.~let them behave like \texttt{star} environments to toggle
    these in a unified way.
\end{itemize}

\PrintIndex
  
\end{document}
