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.