summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGreg Brown <greg.brown01@ed.ac.uk>2022-11-25 15:28:55 +0000
committerGreg Brown <greg.brown01@ed.ac.uk>2022-11-25 15:28:55 +0000
commite8b8d6063adb69188c0b971dc641fabf3fdb53cc (patch)
treeac005f93afa313786da30c29812c36ceb12a5755 /src
parenteffca509eb470faa515bdb7e61cdaddc80ed37ff (diff)
refactor: add structural comments.
Diffstat (limited to 'src')
-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