How to implement dependent type theory I (2012)
math.andrej.com
math.andrej.com
All of this knowledge and context spread amongst a common set of books, papers, blog posts, and git repos floating around the internet.
At the risk of creating yet another partial silo, I decided earlier this year to create a project similar to the [Elaboration Zoo](https://github.com/AndrasKovacs/elaboration-zoo) but focused on a blessed path to MLTT with a number of the desirable language features via bidirectional typechecking.
https://github.com/solomon-b/lambda-calculus-hs
The project is incomplete and my end goal is a website like the [1 Lab](https://1lab.dev) but focused on Type Theory and PL Theory, but I ran low on steam and could use some collaborators.
I went with Haskell as my meta-language because I'm specifically trying to focus on language implementation rather then formal analysis and proofs.
I have everything from the README other then linear types, row polymorphism, and case-trees implemented outside the repo (and some in the main/old folder). I haven't gotten them into the repo yet because I want to make sure the implementations are succinct and decently documented.
I want to move onto a 1lab style presentation with substantially more documentation at a later date.
Not sure how I could contribute, but I'd love to if possible.
https://www.youtube.com/watch?v=DEj-_k2Nx6o
There's Pi and Sigma so it is about dependent type theory as well.
type term = | Var of var | Pi of term * term binder (* Pi (x:A). Bx A; x.B ) | Sg of term term binder
https://github.com/martinescardo/HoTTEST-Summer-School/tree/...
If you find this stuff interesting, the recent Little Typer book is also worth a look.