module Examples2 where import Prelude hiding (and, or) import qualified Prelude as P (and, or) import DataTypes import BoolExprStep2 a, b, c :: BoolExpr a = var "a" b = var "b" c = var "c" deMorgan, modusPonens :: BoolExpr deMorgan = (neg (a `and` b)) `equiv` (neg a `or` neg b) modusPonens = (a `and` (a `impl` b)) `impl` b true1 = (a `and` true) `or` (b `or` true) equiv1 = ((a `equiv` a) `equiv` a) `equiv` false `equiv` false t1 = showEx . simplifyExpr $ modusPonens t2 = showEx . simplifyExpr $ deMorgan t3 = showEx . simplifyExpr $ equiv1