COURSE 20162017
From Monday November 28 to Friday December 2, 2016, Yves Bertot, Cyril Cohen, Laurence Rideau and Enrico Tassi will be teaching a course entitled
“ADVANCED SOFTWARE VERIFICATION AND COMPUTER PROOF”
in Sophia Antipolis.
This course introduces advanced formalization techniques for the Coq proof assistant. In particular students will learn the SSReflect proof language and the Mathematical Components library. Such piece of technology is at the base of large formalizations like the Four Color Thereom or the Odd Order Theorem, and encompasses a proof language designed to write concise and robust proof scripts (called SSReflect) and a huge, modular, library of Coq theories (the Mathematical Components library).
Objective: At the end of the week, we expect that students will know how to write algorithms and proofs on top of the Mathematical Components library and the SSReflect proof language, taking advantage of the large corpus of already formalized algorithms and mathematical results.
Prerequisites: students are expected to have (basic) experience with Coq. No previous knowledge of SSReflect or the Mathematical Components library is expected.
Lessons: the course is organized in the following 8 sessions, each divided into 1h lesson and 1:30 practical exercises.

28/11/2016 – 14:0017:00 – Enrico Tassi: Intro: SSReflect and the MathComp library
Tactics, notations, principles of Small Scale Reflection and the Mathematical Components library (lesson, exercise session, exercise template, exercise solution, cheat sheet)

29/11/2016 – 9:0012:00 – Enrico Tassi: Basic data types
Basic data types like natural numbers and lists and their associated library (lesson, exercise session, exercise template, solution)

29/11/2016 – 14:0017:00 – Yves Bertot: Finite types and big operators
Notations, algorithms and proofs about numbers and finite types (lesson, exercise session,
Exercise solution) 
30/11/2016 – 9:0012:00 – Yves Bertot: Arithmetics or Graphs
Algorithms and proofs about graphs (lesson, exercise session)

30/11/2016 – 14:0017:00 – Cyril Cohen: The algebra library
Interfaces and instances of the algebra library; notations and theorems about rings (lesson, exercise session, exercise template)

1/12/2016 – 9:0012:00 – Laurence Rideau: Polynomials
Polynomials: data structure, algorithms and proofs (lesson, exercise session, exercise template)

1/12/2016 – 14:0017:00 – Cyril Cohen: Matrix library
Matrices and related algorithms (lesson, lesson sources, exercise session, exercise template)

2/12/2016 – 9:0012:00 – Exam, aka long exercise
Courses will take place from Monday 14:00 to Friday 12:00 (the other days of the week 9:00 to 12:00 and 14:00 to 17:00) and will alternate lectures with handson exercises for all students. The course is in English and will be located at Inria Sophia Antipolis, in room ByronBeige, this is very close to the entrance office of the Inria research center (Global coordinates: 43.61472,7.06771).
If you are a doctoral student in computer science or mathematics, not already specializing in computerbased proofs, you will be able to validate credits for this course, as long as you show up to most of the sessions during the week.
Setup: we expect anybody attending to come with a laptop computer equipped with a web browser recent enough to run the test page. Alternatively one can have Coq 8.5pl2 and SSR/MC 1.6 installed, either from precompiled versions (as provided by Debian or other Linux distributions) or as recompiled from the sources: Coq and SSR/MC.
Registration: If you wish to attend, it is preferable that you send a mail to Enrico Tassi and Florence Barbara (all mail addresses are firstname.name@inria.fr ), so that we can plan the size of the required room and we can warn you about changes in the organization. In this application mail, please indicate if you wish some help for accommodation.