diff options
| author | Chloe Brown <chloe.brown.00@outlook.com> | 2023-05-24 14:21:53 +0100 | 
|---|---|---|
| committer | Chloe Brown <chloe.brown.00@outlook.com> | 2023-05-24 14:38:26 +0100 | 
| commit | 2aa256f4c60caa57a641ecf0962db0f69cab455a (patch) | |
| tree | f990f24538271d4696067089db8999f5f5928faf /src/Term.idr | |
| parent | 1207476a583ee527d78c3ff43e8a6757ea3406c4 (diff) | |
Make normal forms a property.
Weakening is now part of eval.
Diffstat (limited to 'src/Term.idr')
| -rw-r--r-- | src/Term.idr | 4 | 
1 files changed, 3 insertions, 1 deletions
diff --git a/src/Term.idr b/src/Term.idr index e6cf25c..fde8d9f 100644 --- a/src/Term.idr +++ b/src/Term.idr @@ -46,18 +46,20 @@ lift : Subst ctx ctx' -> Subst (ctx :< ty) (ctx' :< ty)  lift (Base thin) = Base (keep thin)  lift (sub :< t) = shift (sub :< t) :< Var Here -export +public export  index : Subst ctx' ctx -> Elem ty ctx -> Term ctx' ty  index (Base thin) i = Var (index thin i)  index (sub :< t) Here = t  index (sub :< t) (There i) = index sub i +public export  restrict : Subst ctx1 ctx2 -> ctx3 `Thins` ctx2 -> Subst ctx1 ctx3  restrict (Base thin') thin = Base (thin' . thin)  restrict (sub :< t) Id = sub :< t  restrict (sub :< t) (Drop thin) = restrict sub thin  restrict (sub :< t) (Keep thin) = restrict sub thin :< t +export  (.) : Subst ctx1 ctx2 -> Subst ctx2 ctx3 -> Subst ctx1 ctx3  sub2 . Base thin = restrict sub2 thin  sub2 . (sub1 :< t) = sub2 . sub1 :< Sub t sub2  | 
