¿Es posible dibujar un árbol de prueba de resolución en Beamer?

¿Es posible dibujar un árbol de prueba de resolución en Beamer?

Cómo dibujar un árbol de resolución comoel ejemplo aquí

ingrese la descripción de la imagen aquí

Respuesta1

El árbol se puede hacer fácilmente usandoTikZ:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc,fit,trees}

\begin{document}

\begin{tikzpicture}[
  grow'=up,
  level 1/.style={sibling distance=14em},
  level 2/.style={sibling distance=6em}]
\node (f) {False} 
child { node (1l) {$p(a)$}
  child {node (2ll) {$\neg p(a)$}}
  child {node (2lr) {$p(a)\vee p(b)$}}
}
child {node (1r) {$\neg p(a)$}
child {node (2rl) {$p(X)\vee r(X)$}}
child {node (2rr) {$\neg r(b)$}}
};
\end{tikzpicture}

\end{document}

ingrese la descripción de la imagen aquí

Lo único que quizás no resulte trivial es dibujar los caminos cerrados que rodean algunos grupos de fórmulas; Un posible enfoque aquí sería utilizarJake's answeralímite acolchado del casco convexo:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc,fit,trees}

\newcommand{\convexpath}[2]{
[   
    create hullnodes/.code={
        \global\edef\namelist{#1}
        \foreach [count=\counter] \nodename in \namelist {
            \global\edef\numberofnodes{\counter}
            \node at (\nodename) [draw=none,name=hullnode\counter] {};
        }
        \node at (hullnode\numberofnodes) [name=hullnode0,draw=none] {};
        \pgfmathtruncatemacro\lastnumber{\numberofnodes+1}
        \node at (hullnode1) [name=hullnode\lastnumber,draw=none] {};
    },
    create hullnodes
]
($(hullnode1)!#2!-90:(hullnode0)$)
\foreach [
    evaluate=\currentnode as \previousnode using \currentnode-1,
    evaluate=\currentnode as \nextnode using \currentnode+1
    ] \currentnode in {1,...,\numberofnodes} {
-- ($(hullnode\currentnode)!#2!-90:(hullnode\previousnode)$)
  let \p1 = ($(hullnode\currentnode)!#2!-90:(hullnode\previousnode) - (hullnode\currentnode)$),
    \n1 = {atan2(\x1,\y1)},
    \p2 = ($(hullnode\currentnode)!#2!90:(hullnode\nextnode) - (hullnode\currentnode)$),
    \n2 = {atan2(\x2,\y2)},
    \n{delta} = {-Mod(\n1-\n2,360)}
  in 
    {arc [start angle=\n1, delta angle=\n{delta}, radius=#2]}
}
-- cycle
}

\begin{document}

\begin{tikzpicture}[
  grow'=up,
  level 1/.style={sibling distance=14em},
  level 2/.style={sibling distance=6em}]
\node (f) {False} 
child { node (1l) {$p(a)$}
  child {node (2ll) {$\neg p(a)$}}
  child {node (2lr) {$p(a)\vee p(b)$}}
}
child {node (1r) {$\neg p(a)$}
child {node (2rl) {$p(X)\vee r(X)$}}
child {node (2rr) {$\neg r(b)$}}
};
\draw[cyan!70!black] \convexpath{f,1l.west,1r.east}{13pt};
\draw[red!70!black] \convexpath{1r,2rl.west,2rr.east}{12pt};
\end{tikzpicture}

\end{document}

ingrese la descripción de la imagen aquí

Tienes acceso a muchos recursos relacionados con TikZ:

información relacionada