diff options
author | Greg Brown <greg.brown01@ed.ac.uk> | 2022-11-25 15:28:55 +0000 |
---|---|---|
committer | Greg Brown <greg.brown01@ed.ac.uk> | 2022-11-25 15:28:55 +0000 |
commit | e8b8d6063adb69188c0b971dc641fabf3fdb53cc (patch) | |
tree | ac005f93afa313786da30c29812c36ceb12a5755 | |
parent | effca509eb470faa515bdb7e61cdaddc80ed37ff (diff) |
refactor: add structural comments.
-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 |