summaryrefslogtreecommitdiff
path: root/src/Core/Declarative.idr
diff options
context:
space:
mode:
authorChloe Brown <chloe.brown.00@outlook.com>2023-04-06 16:57:25 +0100
committerChloe Brown <chloe.brown.00@outlook.com>2023-04-06 16:57:25 +0100
commit93aae7e34e7130d9541d3441079448f156d93477 (patch)
tree02900fd5e8588e7d04e5375488b70bb12aa4a788 /src/Core/Declarative.idr
parentfce659187d9e24e29ae23f7d8de078dcdc9dcfd4 (diff)
Migrate Env to use Thinned.
Diffstat (limited to 'src/Core/Declarative.idr')
-rw-r--r--src/Core/Declarative.idr17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/Core/Declarative.idr b/src/Core/Declarative.idr
index ae7e3aa..2fff434 100644
--- a/src/Core/Declarative.idr
+++ b/src/Core/Declarative.idr
@@ -27,9 +27,9 @@ data EnvWf where
EnvWf [<]
(:<) :
EnvWf env ->
- TypeWf env (wkn a thin) ->
+ TypeWf env (expand t) ->
---
- EnvWf (Add env thin a)
+ EnvWf (Add env t)
data TypeWf where
SetType :
@@ -150,11 +150,10 @@ data TermConv where
public export
data ThinWf : sx `Thins` sy -> Env sy -> Env sx -> Type where
IdWf : ThinWf (id sx) env env
- DropWf : ThinWf thin env2 env1 -> ThinWf (drop thin n) (Add env2 thin' a) env1
+ DropWf : ThinWf thin env2 env1 -> ThinWf (drop thin n) (Add env2 t) env1
KeepWf :
ThinWf thin env2 env1 ->
- {auto 0 prf : IsNotId thin} ->
- ThinWf (keep thin n) (Add env2 (thin . thin') a) (Add env1 thin' a)
+ ThinWf (keep thin n) (Add env2 (shift t thin)) (Add env1 t)
%name ThinWf thinWf
@@ -166,7 +165,7 @@ typeConvRespEnvEq : TypeConv env1 a b -> EnvEq env1 env2 -> TypeConv env2 a b
termWfRespEnvEq : TermWf env1 t a -> EnvEq env1 env2 -> TermWf env2 t a
termConvRespEnvEq : TermConv env1 t u b -> EnvEq env1 env2 -> TermConv env2 t u b
-envWfRespEnvEq [<] [<] = [<]
+envWfRespEnvEq envWf Base = envWf
envWfRespEnvEq (envWf :< wf) (prf :< eq) =
envWfRespEnvEq envWf prf :<
rewrite sym eq in typeWfRespEnvEq wf prf
@@ -282,10 +281,10 @@ CompWf (KeepWf {thin = thin2, n} thinWf2) IdWf =
CompWf (KeepWf {thin = thin2, n} thinWf2) (DropWf {thin = thin1} thinWf1) =
rewrite compRightDrop thin2 thin1 n in
DropWf (CompWf thinWf2 thinWf1)
-CompWf (KeepWf {thin = thin2, n, prf = prf2} thinWf2) (KeepWf {thin = thin1, thin', prf = prf1} thinWf1) =
+CompWf (KeepWf {thin = thin2, n} thinWf2) (KeepWf {thin = thin1, t} thinWf1) =
rewrite compKeep thin2 thin1 n in
- rewrite compAssoc thin2 thin1 thin' in
- KeepWf {prf = compPresNotId prf2 prf1} (CompWf thinWf2 thinWf1)
+ rewrite shiftHomo t thin1 thin2 in
+ KeepWf (CompWf thinWf2 thinWf1)
-- Weakening Preservation ------------------------------------------------------