summaryrefslogtreecommitdiffstats
path: root/src/act4e_solutions/maps.py
diff options
context:
space:
mode:
authorAndrea Censi <acensi@ethz.ch>2022-02-21 12:22:37 +0100
committerAndrea Censi <acensi@ethz.ch>2022-02-21 12:22:37 +0100
commit5a5331537c3fa89ac1a553e101997e945ce97bc0 (patch)
tree86219565b8f58ed4ea9f02ff36c8a4ad682a2bd5 /src/act4e_solutions/maps.py
parentBump to version 7.1.2202211059 [ci skip] (diff)
downloadact4e-5a5331537c3fa89ac1a553e101997e945ce97bc0.tar.gz
act4e-5a5331537c3fa89ac1a553e101997e945ce97bc0.zip
skeletons
Diffstat (limited to 'src/act4e_solutions/maps.py')
-rw-r--r--src/act4e_solutions/maps.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/act4e_solutions/maps.py b/src/act4e_solutions/maps.py
new file mode 100644
index 0000000..cf4e98f
--- /dev/null
+++ b/src/act4e_solutions/maps.py
@@ -0,0 +1,26 @@
+from typing import overload, TypeVar
+
+import act4e_interfaces as I
+
+A = TypeVar("A")
+B = TypeVar("B")
+C = TypeVar("C")
+
+
+class MyFiniteMapOperations(I.FiniteMapOperations):
+ @overload
+ def identity(self, s: I.FiniteSet[A]) -> I.FiniteMap[A, A]:
+ ...
+
+ @overload
+ def identity(self, s: I.Setoid[A]) -> I.Mapping[A, A]:
+ ...
+
+ def identity(self, s: I.Setoid[A]) -> I.Mapping[A, A]:
+ raise NotImplementedError()
+
+ def compose(self, f: I.FiniteMap[A, B], g: I.FiniteMap[B, C]) -> I.FiniteMap[A, C]:
+ raise NotImplementedError()
+
+ def as_relation(self, f: I.FiniteMap[A, B]) -> I.FiniteRelation[A, B]:
+ raise NotImplementedError()