30fa93ab4e
refactor core syntax slightly to derive Eq/Show
...
add a new `WithSubst tm env to` record that packages a `tm from`
with a `Subst env from to`, and write instances for just that. the
rest of the AST can be derived
2023-04-27 21:37:20 +02:00
b666bc20cf
do scope checking in FromParser where it belongs
2023-04-18 22:55:23 +02:00
4578b30c79
namespaces work now
2023-04-18 00:10:53 +02:00
3fb8580f85
re-add tightening and use it when messing with scopes
...
e.g. "coe [_ ⇒ A] @p @q s" should immediately reduce to "s",
but if the "_ ⇒ A" happened to use an SY it didn't.
this will still happen if a wrong SY sneaks in but the alternative is
re-traversing the term over and over every time whnf runs
2023-04-17 20:56:31 +02:00
a5ccf0215a
coercions and compositions
2023-04-15 15:13:01 +02:00
a42e82c355
type-case
2023-04-03 17:46:23 +02:00
ba2818a865
remove IsQty interface
2023-04-01 19:16:43 +02:00
8a9b4c23dd
box type
2023-03-31 19:26:24 +02:00
84e1cc78cc
use a SnocVect for subN
2023-03-26 16:09:47 +02:00
9250789219
natural numbers
2023-03-26 14:40:54 +02:00
5053e9b234
remove inject stuff
...
injecting from m to (n+m) is just id ::: id ::: ... ::: shift n.
specifically, injecting from 0 is just the shift. so.
2023-03-25 22:44:30 +01:00
ecd3be8bda
"WhnfErr" ⇒ "WhnfError"
2023-03-13 19:39:29 +01:00
60f07a938e
move pushSubsts to Q.S.T.Subst
2023-02-26 11:17:42 +01:00
efca9a7138
add enums, which also need whnf to be fallible :(
2023-02-22 07:45:10 +01:00
0e481a8098
new representation for scopes
2023-02-22 07:40:19 +01:00
1a7efc104e
Replace subst overloading with interfaces too (mostly)
2023-02-20 22:22:49 +01:00
cb5bd6c98c
make overloaded reduce stuff into interfaces
...
this is kinda a pain so i might change it back i guess
2023-02-20 21:42:31 +01:00
7895fa37e5
Q.S.T.Reduce ⇒ Q.Reduce and make it use Definition directly
2023-02-19 18:54:59 +01:00
3cf246b4dc
merge Quox.{Syntax.Term.}Reduce
2022-05-25 16:00:49 +02:00
804f1e3638
remove src directories
2022-05-06 22:01:44 +02:00