52 lines
849 B
Markdown
52 lines
849 B
Markdown
# pi
|
||
|
||
A dependently typed system
|
||
|
||
# Implemented
|
||
|
||
* A Basic dependent lambda calculus
|
||
* lambda abstractions
|
||
* variables
|
||
* pi types
|
||
* type of types
|
||
|
||
* let ... in ...
|
||
|
||
* Unit type
|
||
|
||
* Empty type
|
||
|
||
* Natural numbers
|
||
|
||
* Σ Types
|
||
|
||
# TODO
|
||
|
||
* Parser
|
||
|
||
* Fun types
|
||
* Id
|
||
|
||
* Repl
|
||
|
||
* Universes
|
||
|
||
* Performence optimisation
|
||
* Memoize normalisation and conversion somehow?
|
||
|
||
* Implicit arguments
|
||
|
||
* (indexed) inductive datatypes
|
||
|
||
* Write down the rules (I'll not get this far)
|
||
|
||
* 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. 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
|