Interactive Theorem Proving CS
CS-628 / 4 crédits
Enseignant(s): Barrière Aurèle Aimé Aubin, Pit-Claudel Clément
Langue: Anglais
Remark: Spring 2024
Frequency
Every year
Summary
A hands-on introduction to interactive theorem proving, proofs as programs, dependent types, and to the Coq proof assistant. Come learn how to write bug-free code!
Content
Draft syllabus
- Intro to the Coq proof assistant (logic, higher-order functions, tactics)
- Functional programming (inductive types and fixpoints)
- Structural induction (data structures and verified algorithms)
- Interpreter-based program semantics (intro to compiler verification)
- Inductive relations (predicates, rule induction)
- Automation and tactics I (bottom-up reasoning and logic programming)
- Operational program semantics (small- and big-step semantics)
- Program logics (hoare triples)
- Automation and tactics II (top-down reasoning)
- Type systems (Simply-typed lambda calculus)
- Dependent types and equality proofs
- Automation and tactics III (proofs by reflection)
- Real-world interactive theorem proving (guest lecture)
Teaching methods: (e.g., ex cathedra, in-lab project, field trip)
- Lectures
- Live-coding sessions
Expected student activities:
- Weekly programming and verification assignments
Assessment methods:
- Take-home programming and verification assignments
Note
Learning outcomes:
Implement purely-functional algorithms in the Gallina language; Translate informal requirements about software into precise mathematical properties; Plan and carry out mechanized proofs in Coq (e g maths algorithms compilers type systems); Automate repetitive proof tasks by crafting simple
Keywords
nteractive theorem proving, verification, intuitionistic logic, program proofs, functional programming
Learning Prerequisites
Required courses
- Formal Verification (CS-550)
- Computer language processing (CS-320)
Recommended courses
- Formal Verification (CS-550)
- Computer language processing (CS-320)
Resources
Bibliography
- https://softwarefoundations.cis.upenn.edu/
- http://adam.chlipala.net/frap/
- https://coq.inria.fr/distrib/current/refman/
Moodle Link
Dans les plans d'études
- Nombre de places: 30
- Forme de l'examen: Pendant le semestre (session libre)
- Matière examinée: Interactive Theorem Proving CS
- Cours: 2 Heure(s)
- Exercices: 1 Heure(s)
- TP: 3 Heure(s)