pi/README.md

53 lines
909 B
Markdown
Raw Normal View History

2022-05-16 17:40:01 +02:00
# pi
2022-07-21 00:05:45 +02:00
2022-05-16 17:40:01 +02:00
A dependently typed system
2022-07-21 00:05:45 +02:00
# Implemented
* A Basic dependent lambda calculus
* lambda abstractions
* variables
* pi types
* type of types
2022-07-21 19:51:55 +02:00
* let ... in ...
2022-07-21 00:05:45 +02:00
* Unit type
* Empty type
* Natural numbers
2022-07-21 04:20:20 +02:00
* Σ Types
2022-07-28 04:47:54 +02:00
* Martin-Löf Identity types
2022-05-16 17:40:01 +02:00
2022-07-28 04:47:54 +02:00
# TODO
2022-07-21 19:51:55 +02:00
2022-07-26 06:11:57 +02:00
* Universes
2022-07-28 04:47:54 +02:00
* Elaboration
* Implicit arguments
* Universe family application
* Inductives
* Indexed inductives
## Things that could be fun to do sometime eventually
* Pattern matching in elaborator
2022-05-16 17:40:01 +02:00
2022-07-28 04:47:54 +02:00
* Write down the rules
2022-07-21 00:05:45 +02:00
2022-07-28 04:47:54 +02:00
* Performence optimisation?
2022-07-21 00:05:45 +02:00
2022-07-21 19:51:55 +02:00
* Compile to scheme
# References
Some of the material I found helpful in groking dependent type checking:
* Coquand, Thierry. “An Algorithm for Type-Checking Dependent Types.” Science of Computer Programming 26, no. 13 (May 1996): 16777. https://doi.org/10.1016/0167-6423(95)00021-6.
* Brady, Edwin. "SPLV20 course notes". GitHub. https://github.com/edwinb/SPLV20