(check-expect (eval (make-If 'x 'x true) empty-env) true)
(check-expect (eval (make-If 'x (make-If 'z true 'x) (make-If 'z true (make-If 'x false true))) empty-env) true)
(check-expect (eval (make-If 'x 'x 'x) empty-env) 'x)
(check-expect (reduce
'(and (or x y)
(and (or x (not y))
(and (or (not x) y)
(or (not x) (not y))))))
false)
(check-expect (reduce
'(and (or x y)
(and (or x (not y))
(or (not x) (not y)))))
'(and x (not y)))
(check-expect (reduce
'(or (and x y)
(or (and x (not y))
(or (and (not x) y)
(and (not x) (not y))))))
true)
(check-expect (reduce
'(or (and x (not y))
(or (and (not x) y)
(and (not x) (not y)))))
'(implies x (not y)))