Table of Contents

Fondements des systemes de preuves (24h, 3 ECTS)

Responsable : Gilles Dowek

Plan du cours et intervenants prévus pour 2005-2006

  1. ??? (14h, Gilles Dowek
  2. ??? (10h, Alexandre Miquel

(essentiellement TD)

Assistants de preuves (24h, 3 ECTS)

Responsable : Chritine Paulin

Plan du cours et intervenants prévus pour 2005-2006

  1. ??? (12h, Bruno Barras
  2. ??? (12h, Jean-Christophe Filliatre

Objectifs

Ce cours étudie la notion de preuve en tant qu'objet mathématique et informatique. Il présente plusieurs théories logiques en mettant l'accent sur les théories des types d'ordre supérieur. Il s'intéresse plus particulièrement à l'articulation entre les notions de raisonnement et de calcul. Les concepts présentés servent de base à plusieurs assistants de preuves, en particulier le système Coq; ils ont pour application la vérification de programmes et la mécanisation de théories mathématiques.

Plan du cours

  1. Logique du premier ordre : système de Hilbert, déduction naturelle, calcul des séquents. Propriétés : élimination des coupures, traductions. Extension au cas multisortes.
  2. Déduction modulo.
  3. La théorie des ensembles, la théorie des types simples.
  4. Lambda-calcul simplement typé : normalisation.
  5. Expression et existence de fonctions en théorie des types : fonctions exprimables sur les entiers de Peano, les entiers de Church; opérateur de choix et de description; représentation de fonctions en logiques intuitionniste ou classique.
  6. Logique intuitionniste, isomorphisme de Curry-de Bruijn-Howard, types dépendants.
  7. Types inductifs : système T de Gödel et théorie des types de Martin-Löf.
  8. Polymorphisme : système F, Calcul des Constructions, généralisation aux systèmes de types purs. Normalisation, élimination des coupures, représentation des fonctions.
  9. Introduction au système Coq.
  10. Définitions de relations inductives et co-inductives : paradoxes, applications à la modélisation de la sémantique des langages de programmation.
  11. Calcul des Constructions Algébriques.
  12. Réalisabilité, extraction de programmes à partir de preuves constructives.
  13. Programmation avec types dépendants, lien avec la preuve de programmes.
  14. Architecture des assistants de preuves : Coq, PVS, Isabelle.
  15. Preuves constructives en logique classique, relation avec les programmes et les machines de réduction.

Pré-requis

Programmation
un langage fonctionnel (Ocaml)
Langages
typage (systèmes de types élémentaires, inférence de type à la ML)
Logique
calcul propositionnel, logique du premier ordre, systèmes de preuves en déduction naturelle
Calculabilité
lambda-calcul pur (syntaxe, alpha-conversion, béta-réduction, confluence)
Mathématique
ordres bien fondés
Réécriture
Notions de base de réécriture du premier ordre

Bibliographie

Équipe pédagogique

B. Barras CR INRIA Futurs-Saclay
G. Dowek PR École Polytechnique LIX
J.-C. Filliâtre CR CNRS LRI
H. Herbelin CR INRIA Futurs-Saclay
A. Miquel MC Paris 7 PPS
C. Paulin-Mohring PU Paris Sud LRI
B. Werner CR INRIA Futurs-Saclay