This page contains information about the “Proof assistants” (PRFA, 2-7-2) course in the second year (M2) of the Parisian Master in Research in Computer Science (MPRI) taught by Yannick Forster and Théo Winterhalter.

Note

Please register for the course here.

Overview

Proof assistants have a wide range of applications from mathematical theorems (including some, like the four colour theorem, that have no proof without the use of a computer) to program verification (which can be crucial for critical software, e.g. in aviation settings or cryptography).

The PRFA course aims at bringing students to a point where they are familiar enough with one proof assistant, namely Coq, with the objectives to have the students

To this end, the course focuses on introducing general concepts found in proof assistants through practice in the Coq proof assistant, and also mentions aspects of the underlying type theory. A complementary introduction to type systems is part of the course Foundations of proof systems.

Main information

The class takes place in room 1004 from 08:45 to 11:45. The first lecture is on September 23rd.

Students must bring their own laptop with Coq installed prior to the first lecture (⚠️): we require version 8.18 together with Equations and MetaCoq installed. To that end, we assume students have installed the corresponding Coq Platform. Please don’t hesitate to send us an email if you have trouble installing anything before the first lecture.

Note

You can find information on how to install Coq and for which editor to use on a dedicated subpage.

Please check your installation is correct by trying to run the test file we provide. Once again, contact us if you have any trouble.

A background in functional programming and logic is preferable, but not mandatory or necessary to pass the lecture. Experience in using Coq is not necessary. The class is designed to be interesting both for absolute newcomers and students with background using Coq.

Tip

We provide answers to frequently asked questions about Coq in our FAQ.

Outline of the course

The course is divided over 8 weeks with the tentative following schedule. For each lecture, we plan to provide optional advanced exercises. Doing them is not mandatory to pass the course, but we encourage you to try them.

Evaluation

There will be an exam and a project, each counting for half of the final grade.

The project (v1.6, 8 November) is now online.

Warning

The project deadline is 14 November 2024 at 18:00.

The exam will be on 25 November in room 0011 (to make sure that all of you fit in).

Tip

You are allowed to bring an A4 double-sided, hand-written page to help you for the exam. Take the time to prepare it well.

Language

The course will be taught in English by default. You can still ask us questions or write the exam in French.

Do not hesitate to contact us about advice around internships in the field, starting from the beginning of the course. We know a lot of people in the field so we can help you.

References

The most important resources for you are:

Books to learn Coq:

Other related documents:

This course has been taught in different formats since 1997, by Christine Paulin-Mohring, Benjamin Werner, Bruno Barras, Hugo Herbelin, Jean-Christophe Filliâtre, Claude Marché, Guillaume Melquiond, Assia Mahboubi, Matthieu Sozeau, Yannick Forster, and Théo Winterhalter. Parts of the material we teach is taken or inspired from previous iterations of the course.