module BoolExprStep2 where import DataTypes import BoolExprStep1 -- ------------------------------ -- substitute all operators by AND, OR and NOT transf2AndOrNot :: BoolExpr -> BoolExpr transf2AndOrNot e = undefined -- use de Morgan to move negation inside moveNegationInside :: BoolExpr -> BoolExpr moveNegationInside e = undefined -- use assoc for AND, OR, EQUIV and XOR assocLaw :: BoolExpr -> BoolExpr assocLaw e = undefined -- simplify expression by (repeated) application -- of partial eval and the above functions to a whole -- expression. -- processTopDown and processBottomUp are useful in -- context simplifyExpr :: BoolExpr -> BoolExpr simplifyExpr e = undefined -- ------------------------------