bussproofs

The bussproofs extension implements the bussproofs style package from LaTeX. See the CTAN page for more information and documentation of bussproofs.

Note that there are a couple of important differences between the use of the package in MathJax compared to actual LaTeX. First, proofs always have to be in a prooftree environment, i.e., inference macros are only recognised if they are enclosed in \begin{prooftree} and \end{prooftree}. Consequently the \DisplayProof command is not necessary.

Second, unlike in the LaTeX package, options for abbreviated inference rule macros do not have to be manually set. All abbreviated macros are directly available. Thus commands like \BinaryInfC and \BIC can be used immediately and interchangeably.

For example:

\begin{prooftree}
\AxiomC{}
\RightLabel{Hyp$^{1}$}
\UnaryInfC{$P$}
\AXC{$P\to Q$}
\RL{$\to_E$}
\BIC{$Q^2$}
\AXC{$Q\to R$}
\RL{$\to_E$}
\BIC{$R$}
\AXC{$Q$}
\RL{Rit$^2$}
\UIC{$Q$}
\RL{$\wedge_I$}
\BIC{$Q\wedge R$}
\RL{$\to_I$$^1$}
\UIC{$P\to Q\wedge R$}
\end{prooftree}

Also note that the bussproofs commands for sequent calculus derivations are not yet fully implemented.

This extension is loaded automatically when the autoload extension is used. To load the bussproofs extension explicitly, add '[tex]/bussproofs' to the load array of the loader block of your MathJax configuration, and add 'bussproofs' to the packages array of the tex block.

window.MathJax = {
  loader: {load: ['[tex]/bussproofs']},
  tex: {packages: {'[+]': ['bussproofs']}}
};

Alternatively, use \require{bussproofs} in a TeX expression to load it dynamically from within the math on the page, if the require extension is loaded.