Course Description: This seminar is an introduction to programming and theorem-proving with dependent types. We will use Idris, which is a dependently-typed language that is similar to languages such as Coq and Agda. In the first part of the course, we will individually work through the book Type-Driven Development with Idris. In the latter part, we will undertake a larger project as a group.
Book: Type-Driven Development with Idris.
Instructor: Arjun Guha
Time: Fridays, 1:25PM -- 2:40PM
Location: LGRC A310
Prerequisites: Open to graduate students in computer science, or with permission of the instructor.
Q: What are the actual prerequisites?
You need to be comfortable with an ML-style, typed functional programming language (e.g., OCaml, Standard ML, Haskell, or even Scala). Knowing Haskell will help the most because Idris borrow several ideas from Haskell.
Q: What are we doing?
A: In the first half of the course, we will work through Type-Driven Development in Idris. We will do most of the exercises in the book. In addition, every week, each participant will come up 1-2 new exercises for everyone else to do. In the latter half of the course, we will undertake a larger verification effort. One option is to translate projects from COMPSCI631 to Idris. Other suggestions are welcome.
Q: Is this a three-credit course?
A: Yes.