使用 implication() 检查具有前置条件的属性

prop_evenNumberPlusOneIsOdd::Integer -> Property
prop_evenNumberPlusOneIsOdd x = even x ==> odd (x + 1)

如果要检查属性是否保留,并且前提条件成立,则可以使用 ==> 运算符。请注意,如果任意输入不太可能匹配前提条件,QuickCheck 可以尽早放弃。

prop_overlySpecific x y = x == 0 ==> x * y == 0

ghci> quickCheck prop_overlySpecific
*** Gave up! Passed only 31 tests.