0 | module Data.Rel.Complement
4 | import Data.Fun.Extra
5 | import Data.Vect.Quantifiers
11 | complement : {ts : Vect n Type} -> (p : Rel ts) -> Rel ts
12 | complement = chain Not
19 | {0 ts : Vect n Type}
21 | -> (elems : HVect ts)
22 | -> Not (uncurry p elems) = uncurry (complement {ts = ts} p) elems
23 | notToComplement p = chainUncurry p Not