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

This page is under construction.

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 Rocq, 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 Rocq 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 on

The first lecture is on September 19.

Students must bring their own laptop with Rocq installed prior to the first lecture (⚠️): we require version 9.0 together with Equations and MetaRocq installed. To that end, we assume students have installed the corresponding Rocq 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 Rocq 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 Rocq is not necessary. The class is designed to be interesting both for absolute newcomers and students with background using Rocq.

Tip

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

Outline of the course

The course is divided over 8 weeks with two slots per week. For each week, we will provide optional advanced exercises. Doing them is not mandatory to pass the course, but we encourage you to try them.

The schedule below is tentative.

Evaluation

There will be an exam and a project.

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 Rocq:

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.