Lecture 18: Dependent Types

Title slideToday’s lecture presented the final component in the quartet of type/term interaction: after first-class functions, parameterized types, and polymorphic terms, we have types that depend on the value of terms. Numerical examples include type-safe vectors and matrices; but dependent types can also be used to strengthen the deep embedding of domain-specific languages into a host meta-language. Examples given included typed lambda-terms and logical formulas. The lecture also touched on the Curry-Howard correspondence of propositions-as-types and the use of dependently-typed programming in the machine-assisted proof of mathematical theorems. Finally, there were some references to dependently-typed languages for writing and verifying programs that are correct-by-construction.

Link: Slides for Lecture 18

Homework

This is the same as for the last lecture. Tuesday will be an exam review lecture where I shall go through past exam questions or topics from those nominated by you.

  • Go to the exams page, read it, then download and look through the past papers.
  • Pick out specific questions, part-questions, or topics to nominate for the review lecture.
  • Post them to the mailing list, the Facebook page, or as a comment on this blog entry.

Please note that some past questions address topics not covered this year: naturally, those areas won’t appear on the exam.

References

Coq home page screenshot The Coq Proof Assistant
Recipient in 2013 of both the ACM SIGPLAN Programming Languages Software Award and the ACM Software System Award.
Links: Coq home page, documentation and tutorials
Agda home page screenshot Agda
A dependently typed functional programming language, and also an interactive proof assistant.
Link: Agda home page
F* home page screenshot The F Project
Several remarkable applications of dependently-typed programming for verification, distributed programming, cryptographic protocols, and more.
Links: The F project, interactive tutorial, compilation to Javascript
Cover of ACM Notices ACM Notices — Special Issue on Formal Proof, November 2008
Includes Georges Gonthier explaining his Coq proof of the four-colour theorem.
Links: ACM Notices Special Issue, four-colour theorem, complete issue as PDF
TSPL course home page screenshot Types and Semantics for Programming Languages
Phil Wadler
Taught course using the executable textbook Software Foundations.
Link: Course home page, Software Foundations
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s