module Logic.Predicate.Illegal where -- some illegal states are representable -- e.g. a function with arity 2 having 3 arguments data Formula = Not Formula | Or Formula Formula | And Formula Formula | Implies Formula Formula | Iff Formula Formula | Forall String Formula | Exists String Formula | Predicate String [Term] deriving Show data Term = Variable String | Function String [Term] deriving Show