- 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
Stars
Watchers
Forks
Releases
No releases published