0 | module Search.Negation
2 | import Data.List.Quantifiers
11 | interface Negates p q | q where
12 | toNegation : p -> Not q
15 | ({0 x : a} -> Negates (p x) (q x)) => Negates (All p xs) (Any q xs) where
16 | toNegation all = allNegAny (mapProperty toNegation all)
19 | ({0 x : a} -> Negates (p x) (q x)) => Negates (Any p xs) (All q xs) where
20 | toNegation any = anyNegAll (mapProperty toNegation any)
23 | Negates (m `LT` n) (m `GTE` n) where
24 | toNegation = LTImpliesNotGTE
27 | Negates (m `LTE` n) (m `GT` n) where
28 | toNegation = LTEImpliesNotGT