pi/README.md

52 lines
849 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-05-16 17:40:01 +02:00
# TODO
2022-07-21 04:26:06 +02:00
* Parser
2022-07-21 00:05:45 +02:00
* Fun types
2022-07-20 21:22:35 +02:00
* Id
2022-05-16 17:40:01 +02:00
2022-07-21 19:51:55 +02:00
* Repl
2022-07-21 04:26:06 +02:00
* Universes
2022-07-21 00:05:45 +02:00
2022-07-21 19:51:55 +02:00
* Performence optimisation
* Memoize normalisation and conversion somehow?
2022-07-20 21:22:35 +02:00
* Implicit arguments
2022-05-16 17:40:01 +02:00
2022-07-21 00:05:45 +02:00
* (indexed) inductive datatypes
* Write down the rules (I'll not get this far)
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