summaryrefslogtreecommitdiff
path: root/src/Soat
diff options
context:
space:
mode:
Diffstat (limited to 'src/Soat')
-rw-r--r--src/Soat/Data/Product.idr6
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