注释 ebproofs 的前提和结论

注释 ebproofs 的前提和结论

我想用花括号和一些文本在左侧注释一个 ebproof 证明树,如下图所示:

在此处输入图片描述

我通常会用 来做这件事\text{Premises} \left\{ ... \right.,但我不知道如何对证明树的两个部分(必须在同一prooftree环境中)做到这一点。我希望将注释作为前提或结论的一部分,因为这样证明树分隔符就会位于注释之间(如问题)。

使用 ebproof 包可以实现这一点吗,或者您将如何排版这样的内容?

我现在有的是:

\documentclass{article}

\usepackage{ebproof}

\begin{document}

\begin{prooftree}
    \hypo{\text{Premises} \left\{ G; L \vdash e : \code{bool} \right.}
    \hypo{G; L; \texttt{rt} \vdash s_1}
    \hypo{G; L; \texttt{rt} \vdash s_2}
    \infer{3}[\textsc{If\_Else}]{\text{Conclusion} \left\{ G; L; \texttt{rt} \vdash \texttt{if $(e)$ $s_1$ else $s_2$} \right.}
\end{prooftree}

\end{document}

产生

在此处输入图片描述

我希望“前提”和“结论”位于证明树线的左边。

答案1

您可以使用\tikzmarks,但在这种情况下它可能有点太复杂了:

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{tikzmark, decorations.pathreplacing}
\usepackage{ebproof}

\begin{document}

\begin{prooftree}
    \hypo{ \tikzmark{top} \Gamma, A &\vdash B }
    \infer1[abs]{ \Gamma &\vdash A\to B }
    \hypo{ \Gamma \vdash A }
    \infer[left label=\tikzmark{mid}]2[app]{ \tikzmark{bot} \Gamma \vdash B }
\end{prooftree}
    
\begin{tikzpicture}[remember picture, overlay] 
    \coordinate (brace anchor) at ([xshift=-5pt, yshift=.75em]pic cs:top);
    \draw[decorate, decoration={brace, mirror}] 
        (brace anchor) -- ([yshift={.5ex+2pt}]brace anchor |- {pic cs:mid}) 
        node[left, midway, xshift=-5pt] {Premises};
    \draw[decorate, decoration={brace, mirror}] 
        ([yshift={.5ex-2pt}]brace anchor |- {pic cs:mid}) -- (brace anchor |- {pic cs:bot}) 
        node[left, midway, xshift=-5pt] {Conclusion};
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容