Natürliche Deduktion LaTeX

Natürliche Deduktion LaTeX

Wie schreibt man einen Beweis wie den im Bild? Bildbeschreibung hier eingeben

Ich weiß, wie man alle Symbole schreibt, aber ich weiß nicht, wie man das Rechteck macht und wie eine Tabelle schreibt. Ich habe diese Webseite verwendet:https://www.tablesgenerator.com/, aber mir gefällt nicht, wie die Beweise angezeigt werden.

Antwort1

Hier ist eine Lösung mit einer tabularUmgebung. Um den Code des Beweises selbst zu vereinfachen, habe ich einige neue Befehle definiert. Zunächst eine Umgebung, die mit drei Spalten prooftabularbeginnt :tabular

  1. Im ersten wird automatisch die Nummer der Zeile des Beweises angezeigt (Sie müssen dort nichts eintragen);
  2. Der Zweite ist automatisch im Mathematikmodus und soll für die Schritte des Beweises verwendet werden;
  3. Der dritte ist im Textmodus und soll zur Begründung der Beweisschritte dienen.

Diese Umgebung könnte allein verwendet werden, um einen Beweis anzuzeigen. Um jedoch die Box mit den Symbolen in der Ecke hinzuzufügen, habe ich drei weitere Befehle definiert:

  • \hlineproofboxfügt die horizontalen Linien der Box mit hinzu \cline{2-2}.
  • \proofboxedfügt die vertikalen Linien um eine Zelle in der Box hinzu. Als Argument wird der Inhalt der entsprechenden Zelle verwendet. Es werden nur die vertikalen Linien mit einem hinzugefügt \multicolumn{1}{|...|}{...}.
  • \cornerfügt sein Argument als Hochstellung in der Ecke hinzu. Es sollte innerhalb des ersten platziert werden \proofboxed{}.

Diese drei Befehle sind nicht so nützlich in dem Sinne, dass ihr Inhalt genauso gut direkt in die Tabelle hätte eingefügt werden können. Ich dachte nur, dass der Code des Beweises auf diese Weise leichter zu lesen war.

Wie dem auch sei, hier ist ein vollständiges Beispiel mit Ihrem Beweis.

\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\newcounter{proofrow}
\newenvironment{prooftabular}{%
    \let\oldarraystretch\arraystretch
    \renewcommand{\arraystretch}{1.5}
    \begin{tabular}{%
        @{\stepcounter{proofrow}\theproofrow}%
        p{1em}@{}>{\(}l<{\)}>{\quad}l%
    }
    }{%
    \end{tabular}
    \renewcommand{\arraystretch}{\oldarraystretch}
}
\newcommand{\hlineproofbox}{\cline{2-2}}
\newcommand{\proofboxed}[1]{\multicolumn{1}{|>{\(}l<{\)}@{\ }|}{#1}}
\newcommand{\corner}[1]{\qquad {}^{#1}}

\begin{document}
\[
\forall x, P_1^1(x) \implies P_2^1(x), \forall x . P_2^1(x) \implies P_3^1(x) \vdash \forall x . P_1^1(x) \implies P_3^1(x)
\]
\begin{prooftabular}
    & \forall x . P_1^1(x) \implies P_2^1(x)                        & Prem \\
    & \forall x . P_2^1(x) \implies P_3^1(x)                        & Prem \\
    \hlineproofbox
    & \proofboxed{P_1^1(n) \implies P_2^1(n) \corner{/ \forall n}}  & \(E \ \forall 1\) \\
    & \proofboxed{P_2^1(n) \implies P_3^1(n)}                       & \(E \ \forall 2\) \\
    & \proofboxed{P_1^1(n) \implies P_3^1(n)}                       & Teo \(\alpha \implies \beta, \beta \implies \gamma \vdash \alpha \implies \gamma\) \\
    \hlineproofbox
    & \forall x . P_1^1(x) \implies P_3^1(x)                        & \(\forall x . P_1^1(x) \implies P_2^1(x), \forall x . P_2^1(x) \implies P_3^1(x)\)
\end{prooftabular}
\end{document}

Antwort2

Vorausgesetzt, es gibt keine Probleme beim Schreiben der Symbolbefehle, können Sie empheqdas Paket verwenden, um einen Rahmen um einige Gleichungen (der Einfachheit halber zwei) wie folgt zu erstellen:

Bildbeschreibung hier eingeben

Und sein Code

\documentclass{article}
\usepackage{amsmath}
\usepackage{empheq}
\begin{document}
%
\begin{empheq}[box=\fbox]{align}
    E=mc^2 \\
    y=ax+b
\end{empheq}
%
\end{document}

Und natürlich können Sie ein Sternchen hinzufügen, {align*}um die Nummerierung der Gleichungen zu entfernen.

Wenn Sie Gleichungen linksseitig nummerieren möchten, können Sie die Option [leqno]der articleKlasse wie folgt verwenden

Bildbeschreibung hier eingeben

mit einigen Gleichungen nummeriert und anderen nicht (verwenden Sie \nonumber), dann kann der Code

\documentclass[leqno]{article}
\usepackage{amsmath}
\usepackage{empheq}
\begin{document}
%
\begin{empheq}[box=\fbox]{align}
    E=mc^2 \\
    y=ax+b \\
    y_2 = ax+b \nonumber
\end{empheq}
%
\end{document}

Nun, das ist nicht die perfekte Antwort. Es sind nur einige Ideen, von denen ich sicher bin, dass andere sie verbessern können.

verwandte Informationen