pi/README.md

55 lines
1022 B
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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
* Martin-Löf Identity types
# TODO
* Universes (a la tarksi)
* Elaboration
* Implicit arguments
* Universe family application
* Syntax level russel universes
* Universe of all other universes? (universe polymorphism)
* Inductives
* Indexed inductives
## Things that could be fun to do sometime eventually
* Pattern matching in elaborator
* Write down the rules
* Performence optimisation?
* 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