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
|
|
|
|
|
|
2022-05-16 17:49:56 +02:00
|
|
|
|
# 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. 1–3 (May 1996): 167–77. https://doi.org/10.1016/0167-6423(95)00021-6.
|
|
|
|
|
|
|
|
|
|
* Brady, Edwin. "SPLV20 course notes". GitHub. https://github.com/edwinb/SPLV20
|