summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Brown <greg.brown01@ed.ac.uk>2022-12-05 13:08:39 +0000
committerGreg Brown <greg.brown01@ed.ac.uk>2022-12-05 13:08:39 +0000
commit3c200003925d2fc623c86f19706bcca7411adc76 (patch)
treee09c7a4800b6cd886a6c1f75d881e521f2560bb5
parent1e404cee8e3f36a5fe657012db8ba94c5666cec2 (diff)
Define setoid reindexing.
-rw-r--r--src/Data/Setoid/Indexed/Definition.idr12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/Data/Setoid/Indexed/Definition.idr b/src/Data/Setoid/Indexed/Definition.idr
index d50af06..cf2bb3d 100644
--- a/src/Data/Setoid/Indexed/Definition.idr
+++ b/src/Data/Setoid/Indexed/Definition.idr
@@ -61,6 +61,18 @@ index x i = MkSetoid
}
}
+public export
+reindex : (a -> b) -> IndexedSetoid b -> IndexedSetoid a
+reindex f x = MkIndexedSetoid
+ { U = x.U . f
+ , equivalence = MkIndexedEquivalence
+ { relation = \i => x.equivalence.relation (f i)
+ , reflexive = \i => x.equivalence.reflexive (f i)
+ , symmetric = \i => x.equivalence.symmetric (f i)
+ , transitive = \i => x.equivalence.transitive (f i)
+ }
+ }
+
namespace ToSetoid
public export
irrelevantCast : (0 b : a -> Type) -> IndexedSetoid a