- Notifications
You must be signed in to change notification settings - Fork0
🦠 An experimental elaborator for dependent type theory using effects and handlers
License
NotificationsYou must be signed in to change notification settings
RedPRL/algaett
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This development is an experiment with the following goals:
- Adopt smalltt and related techniques into the cubical world.
- Show how various OCaml packages of ours fit together.
- Write natural grammars without neccesarily conforming to LR(k).
- Use lots of Unicode emojis.
opam pin git+https://github.com/RedPRL/bantorraopam pin git+https://github.com/RedPRL/algaettcat tests/example.agalgaett tests/example.ag
The last line should not have an output, which means it type checks!
The core NbE algorithm closely followsAndrás Kovács’s smalltt.Here are some notable differences:
- We intentionally do not implement unification.
- The universe itself (as a term) is not inferable, which means that the checking might have to be redone with the type unfolded.The type inference from the universe 🌌 will fail, and then the type checking will be redone with 😄 unfolded to 🌌 🆙 1️⃣.
📌 😄 : 🌌 🆙 2️⃣ 👉 🌌 🆙 1️⃣📌 _ 👉 🌌 : 😄
- The conversion checker is generalized to handle subtyping generated by cumulativity.
- algaeff: reusable effects-based components
- asai: error messages(not actively used yet)
- bantorra: unit resolution(not actively used yet)
- bwd: backward lists
- mugen: universe levels
- yuujinchou: namespaces and name modifier
We are using the Earley’s parsing algorithm which can handle all context-free grammars.
About
🦠 An experimental elaborator for dependent type theory using effects and handlers
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
No releases published
Uh oh!
There was an error while loading.Please reload this page.
Contributors4
Uh oh!
There was an error while loading.Please reload this page.