20 lines
429 B
Haskell
20 lines
429 B
Haskell
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
|