Also, more tangential, but this comment section might attract people who know the answer: any good resources for getting started on type systems more generally?
Also, more tangential, but this comment section might attract people who know the answer: any good resources for getting started on type systems more generally?
The best general introduction is probably still Types and Programming Languages: (https://www.cis.upenn.edu/~bcpierce/tapl/index.html) It's a great book, but it doesn't get to dependent types.
https://augustss.blogspot.com/2007/10/simpler-easier-in-rece...
Here is the example code from this post
I like Philip Wadler's Programming Language Foundations in Agda: https://plfa.github.io/
>The original goal was to simply adapt Software Foundations, maintaining the same text but transposing the code from Coq to Agda. But it quickly became clear to me that after five years in the classroom I had my own ideas about how to present the material. They say you should never write a book unless you cannot not write the book, and I soon found that this was a book I could not not write.
I found Agda + PLFA was more approachable for me than Coq + Software Foundations.
(Edit: clarifying that I'm responding to the tangent.)
Here's a link to the chapter on the Curry-Howard correspondence: https://softwarefoundations.cis.upenn.edu/lf-current/ProofOb...
This tutorial maybe?
https://coq.inria.fr/tutorial-nahas
This particular chapter of Software Foundations may be helpful (or it might not be. If so don't sweat it, it isn't really meant to be read in isolation)
https://softwarefoundations.cis.upenn.edu/lf-current/ProofOb...
At the end of the article, there is a coq source code of the entire article for you to play with in CoqIDE or Proof General: https://mdnahas.github.io/doc/nahas_tutorial.v