sort . sort = sort +++ Tests passed. length . nub = length (incorrect when there are repeated elements) *** Falsified, counterexample: [0,0] generalization: x:x:xs xs `union` ys == ys `union` xs (incorrect for repeated elements) *** Falsified, counterexample: ([],[0,0]) generalization: (xs,x:x:xs) generalization: ([],x:x:xs) \(x,y) -> x + y == y + x +++ Tests passed. \x -> x == x + 1 (always incorrect) *** Falsified, counterexample: 0 generalization: x \(x,y) -> x + y == x + x (incorrect) *** Falsified, counterexample: (0,1) \(x,y) -> x /= y (incorrect whenever x and y are equal) *** Falsified, counterexample: (0,0) generalization: (x,x)