Testing nested implication properties with QuickCheck?

How should I you use QuickCheck for testing a property that is a nested implecation such as (A ==> B) ==> C ? The problem is (==>) in QuickCheck is that its type is Testable prop => Bool -> prop -> Property rather than Testable prop => prop -> prop -> Property. So, A ==> (B ==> C) would work but (A ==> B) ==> C won't work when A, B, C are boolean expressions. Is there some trick to handle the latter? Thanks, -- Ahn, Ki Yung

2009/7/27 Ahn, Ki Yung
How should I you use QuickCheck for testing a property that is a nested implecation such as (A ==> B) ==> C ?
You could use the classical equivalence (A ==> B) <=> (~A \/ B). I'm not sure you would get very much out of the implication strategy for the nested one, anyway.
The problem is (==>) in QuickCheck is that its type is Testable prop => Bool -> prop -> Property rather than Testable prop => prop -> prop -> Property. So, A ==> (B ==> C) would work but (A ==> B) ==> C won't work when A, B, C are boolean expressions. Is there some trick to handle the latter?
Thanks,
-- Ahn, Ki Yung
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
participants (2)
-
Ahn, Ki Yung
-
Luke Palmer