# statement logic !!! see [Logic/readme.md](Logic/readme.md) for more details about what's here ## requirements a haskell compiler e.g. GHC ## compile it ```sh make ``` or look in [`Makefile`](Makefile) ## usage only this has been implemented in the main function: ```sh echo '((p->q)<->(!q->!p))' | ./logic ``` ### output ``` Iff (Implies (Atom "p") (Atom "q")) (Implies (Not (Atom "q")) (Not (Atom "p"))) Tautology \begin{tabular}{cc||cccccc|c|cccccccc} $p$ & $q$ & $($ & $($ & $p$ & $\to $ & $q$ & $)$ & $\leftrightarrow $ & $($ & $\neg $ & $q$ & $\to $ & $\neg $ & $p$ & $)$ & $)$ \\ \hline 0 & 0 & & & 0 & 1 & 0 & & \textbf 1 & & 1 & 0 & 1 & 1 & 0 & & \\ 0 & 1 & & & 1 & 0 & 0 & & \textbf 1 & & 1 & 0 & 0 & 0 & 1 & & \\ 1 & 0 & & & 0 & 1 & 1 & & \textbf 1 & & 0 & 1 & 1 & 1 & 0 & & \\ 1 & 1 & & & 1 & 1 & 1 & & \textbf 1 & & 0 & 1 & 1 & 0 & 1 & & \\ \end{tabular} ```