summaryrefslogtreecommitdiff
path: root/src/Data/Term.idr
diff options
context:
space:
mode:
Diffstat (limited to 'src/Data/Term.idr')
-rw-r--r--src/Data/Term.idr13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/Data/Term.idr b/src/Data/Term.idr
index 95fd9f8..2afc774 100644
--- a/src/Data/Term.idr
+++ b/src/Data/Term.idr
@@ -72,3 +72,16 @@ subComp :
(r : Fin j -> Fin k) ->
f . pure r .=. f . r
subComp f r i = Refl
+
+-- Injectivity -----------------------------------------------------------------
+
+export
+opInjectiveLen : (prf : Op {k} op ts = Op {k = n} op' us) -> k = n
+opInjectiveLen Refl = Refl
+
+export
+opInjectiveTs :
+ {0 ts : Vect k (Term sig n)} ->
+ {0 us : Vect j (Term sig n)} ->
+ (prf : Op op ts = Op op' us) -> ts = (rewrite opInjectiveLen prf in us)
+opInjectiveTs Refl = Refl