Hatt is a command-line program which prints truth tables for expressions in classical propositional logic, and a library allowing its parser, evaluator and truth table generator to be used in other programs.
It’s written in Haskell, and is available from Hackage, so if you have the
cabal-install program it’s very easy to install; from the terminal you can just run the following commands.
$ cabal update $ cabal install hatt
Then you can use the
hatt binary to evaluate expressions. Use the
--help flag to see a list of available commands.
$ hatt --evaluate="(A <-> (B | ~C))" --pretty A B C | (A ↔ (B ∨ ¬C)) ---------------------- T T T | T T T F | T T F T | F T F F | T F T T | F F T F | F F F T | T F F F | F
The following are all valid expression forms which can be parsed by Hatt, where ϕ and ψ are metalinguistic variables standing in for any valid expression.
betc.—basically anything in the character class
(ϕ & ψ)
(ϕ | ψ)
(ϕ -> ψ)
(ϕ <-> ψ)
For top-level formulae where the primary connective is a binary one, parentheses are not required. For example, the expression
a | b is valid and will be parsed correctly.