使用 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.