DeMorgan's Laws

demorgan1 p q = not (p && q) == ((not p) || (not q))
demorgan2 p q = not (p || q) == ((not p) && (not q))

Main> ourCheck `mapM_` [demorgan1, demorgan2]
OK, passed 500 tests.
OK, passed 500 tests.