From b3319dd7f206a82fde4000526cab766a936afcc3 Mon Sep 17 00:00:00 2001 From: Greg Brown Date: Fri, 25 Nov 2022 14:32:38 +0000 Subject: Define indexed function types. --- src/Soat/Relation.idr | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/Soat') diff --git a/src/Soat/Relation.idr b/src/Soat/Relation.idr index 9a394c2..cb94216 100644 --- a/src/Soat/Relation.idr +++ b/src/Soat/Relation.idr @@ -73,3 +73,13 @@ record ISetoid (a : Type) where 0 U : a -> Type 0 relation : IRel U equivalence : IEquivalence U relation + +public export +IFunc : {a : Type} -> (x, y : a -> Type) -> Type +IFunc {a} x y = (i : a) -> x i -> y i + +public export +record IFunction {a : Type} (x, y : ISetoid a) where + constructor MkIFunction + func : IFunc x.U y.U + cong : (i : a) -> {u, v : x.U i} -> x.relation i u v -> y.relation i (func i u) (func i v) -- cgit v1.2.3