diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Soat/Data/Product.idr | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/Soat/Data/Product.idr b/src/Soat/Data/Product.idr index 7e0ede0..b20523a 100644 --- a/src/Soat/Data/Product.idr +++ b/src/Soat/Data/Product.idr @@ -130,11 +130,15 @@ namespace Pointwise (::) : forall b, x, y . {0 xs, ys : b ^ is} -> {0 rel : (i : a) -> Rel (b i)} -> (r : rel i x y) -> (rs : Pointwise rel xs ys) -> Pointwise rel (x :: xs) (y :: ys) + -- Destructors + public export index : Pointwise rel xs ys -> (elem : Elem i is) -> rel i (index xs elem) (index ys elem) index (r :: rs) Here = r index (r :: rs) (There elem) = index rs elem + -- Operators + public export map : forall b . {0 r, s : (i : a) -> Rel (b i)} -> ((i : a) -> {x, y : b i} -> r i x y -> s i x y) @@ -142,6 +146,8 @@ namespace Pointwise map f [] = [] map f (r :: rs) = f _ r :: map f rs + -- Relational Properties + public export pwEqImpliesEqual : Pointwise (\_ => Equal) xs ys -> xs = ys pwEqImpliesEqual [] = Refl |