Construindo tabelas verdade no R

Durante a preparação de alguns exercícios de lógica, me deparei com a necessidade de construir tabelas verdade. Lembrando do pacote xtable do R, pensei como seria construir uma tabela verdade usando o R. Minha solução em R está no github, gist abaixo, com o exemplo de como seria a tabela da expressão

\[\neg (a \lor b) \lor c\]

Observem que a saída do primeiro comando xtable é bastante bizarra, certamente um bug do pacote xtable. Editei a saída mantendo apenas o início da tabela gerada e incluíndo “…” no final.

xtable(tt)
% latex table generated in R 2.11.1 by xtable 1.5-6 package
% Wed Mar  2 23:18:40 2011
\begin{table}[ht]
\begin{center}
\begin{tabular}{rllll}
  \hline
 & a & b & c & ! (a $|$ b) $|$ c \\ 
  \hline
1 & c(FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE) & 
    c(FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE) & 
    c(FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE) & 
    c(FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE) \\ 
2 & c(FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, TRUE, TRUE) & 
...
  \hline
\end{tabular}
\end{center}
\end{table}

Para fazer com que cada célula da tabela tivesse apenas o valor lógico correspondente, não um vetor, converti o data.frame em caracteres antes de usar o xtable. Minha solução original convertia em números, Bruno Lopes me lembrou de converter em caracteres diretamente.

\begin{table}[ht]
\begin{center}
\begin{tabular}{llll}
  \hline
a & b & c & \~{} (a OR b) OR c \\ 
  \hline
FALSE & FALSE & FALSE & TRUE \\ 
  FALSE & FALSE & TRUE & TRUE \\ 
  FALSE & TRUE & FALSE & FALSE \\ 
  FALSE & TRUE & TRUE & TRUE \\ 
  TRUE & FALSE & FALSE & FALSE \\ 
  TRUE & FALSE & TRUE & TRUE \\ 
  TRUE & TRUE & FALSE & FALSE \\ 
  TRUE & TRUE & TRUE & TRUE \\ 
   \hline
\end{tabular}
\end{center}
\end{table}